백준 1260 DFS와 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>
#include <cstring>
using namespace std;
 
bool check[1001];
bool map[1001][1001];
 
void dfs(int n, int v) {
    int now = v;
    cout << now << " ";
    check[now] = true;
    for (int i = 1; i <= n; i++) {
        if(map[now][i] && check[i] == false) {
            dfs(n, i);
        }
    }
}
 
void bfs(int n, int v) {
    queue<int> q;
    check[v] = true;
    q.push(v);
    while (!q.empty()) {
        int now = q.front();
        cout << now << " ";
        q.pop();
        for (int i = 1; i <= n; i++) {
            if (map[now][i] && check[i] == false) {
                q.push(i);
                check[i] = true;
            }
        }
    }
}
 
int main() {
    int n, m, v;
    cin >> n >> m >> v;
    for (int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        map[a][b] = true;
        map[b][a] = true;
    }
    dfs(n, v);
    cout << '\n';
    memset(check, falsesizeof(check));
    bfs(n, v);
    cout << '\n';
    return 0;
}
cs



한 달만에 다시 푸는 알고리즘..


44번줄의 map[b][a] = true;



이것 때문에 쓸데없이 시간을 허비했다.


분명 문제에 


"입력으로 주어지는 간선은 양방향이다."


라고 나와있었는데도.. 하..


테스트케이스가 하나밖에 없다면 직접 테스트케이스를 몇 개 만들어 테스트 해볼 것!

'Algorithm' 카테고리의 다른 글

백준 2468 안전 영역  (0) 2018.05.17
백준 11724 연결 요소의 개수  (0) 2018.05.17
백준 2667 단지번호붙이기  (0) 2018.05.17
백준 1012 유기농 배추  (0) 2018.05.17
백준 2583 영역 구하기  (0) 2018.05.17
더보기

댓글,

jayharvey

머신러닝/딥러닝 관련 글을 포스팅할 예정입니다 :)