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, false, sizeof(check)); bfs(n, v); cout << '\n'; return 0; } | cs |
한 달만에 다시 푸는 알고리즘..
44번줄의 map[b][a] = true;
이것 때문에 쓸데없이 시간을 허비했다.
분명 문제에
"입력으로 주어지는 간선은 양방향이다."
라고 나와있었는데도.. 하..
테스트케이스가 하나밖에 없다면 직접 테스트케이스를 몇 개 만들어 테스트 해볼 것!
백준 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
머신러닝/딥러닝 관련 글을 포스팅할 예정입니다 :)