몽셀통통의 블로그
[BaekJoon] 1260 DFS와 BFS :: monton 본문
문제
https://www.acmicpc.net/problem/1260
풀이
DFS는 DFS대로 BFS는 BFS 대로 풀면된다
정점 번호가 작은 것을 먼저 방문하기 때문에 행과 열 값을 바꾸어서도 체크 해주어야 한다
ㅠㅜ 이거때문에 몇번 틀렸다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <iostream> #include <queue> using namespace std; int N, M, S; int arr[1002][1002]; int visit[1002]; void dfs(int num) { cout << num<<" "; for (int i = 1; i <= N; i++) { if (arr[num][i]&&!visit[i]) { visit[i] = 1; dfs(i); } } } void init() { for (int i = 1; i <= N; i++) visit[i] = 0; } int main() { cin >> N >> M >> S; int n,m; queue <int> q; for (int i = 0; i < M; i++) { cin >> n>>m; arr[m][n]=arr[n][m] = 1; } visit[S] = 1; dfs(S); puts(""); init(); q.push(S); visit[S] = 1; while (!q.empty()) { int x = q.front(); cout << x << " "; q.pop(); for (int i = 1; i <= N; i++) { if (arr[x][i] && !visit[i]) { visit[i] = 1; q.push(i); } } } } | cs |
'프로그래밍 > 백준 문제 풀기' 카테고리의 다른 글
[BaekJoon] 1194 달이 차오른다, 가자 :: monton (0) | 2018.05.30 |
---|---|
[BaekJoon] 5427 불 :: monton (0) | 2018.05.29 |
[BaekJoon] 2667 단지번호붙이기 :: monton (0) | 2018.05.27 |
[BaekJoon] 2146 다리 만들기 :: monton (0) | 2018.05.27 |
[BaekJoon] 1987 알파벳 :: monton (0) | 2018.05.27 |