티스토리 뷰
Cycle이 있는지 없는지 판단하는 문제다!
간단하게 Cycle찾는 함수를 구현하면 풀수있다...!
소스코드
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 | #include <iostream> #include <algorithm> #include <vector> #include <cstring> using namespace std; int n, m; int cycle[111]; vector<vector<int>> Graph; bool isCycle(int x) { if (cycle[x]) { if (cycle[x] == -1) return true; return false; } cycle[x] = -1; for (int i = 0; i < Graph[x].size(); i++) { int next = Graph[x][i]; if (isCycle(next)) return true; } cycle[x] = 1; return false; } int main() { scanf(" %d", &n); Graph.resize(n); for (int i = 0; i < n - 1; i++) { scanf(" %d", &m); for (int j = 0; j < m; j++) { int x; scanf(" %d", &x); x--; Graph[i].push_back(x); } } if (isCycle(0)) puts("CYCLE"); else puts("NO CYCLE"); } | cs |
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 15783 세진 바이러스 (0) | 2018.05.28 |
---|---|
[백준] 14585 사수빈탕 (0) | 2018.05.17 |
[백준] 4256 트리 (0) | 2018.05.15 |
[백준] 5639 이진 검색 트리 (0) | 2018.05.14 |
[백준] 13333 Q-인덱스 (0) | 2018.05.14 |
댓글