코딩/사소한 팁
BFS 반복 횟수 카운트
hoon222y
2017. 2. 21. 20:15
문제를 풀다보면 https://www.acmicpc.net/problem/7576 처럼 BFS의 횟수를 카운트 해야하는 경우가 생기게 된다.
이때 대략적으로 쓸수있는 코드를 정리하자면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <queue> using namespace std; void bfs() { queue<int> qu; qu.push(1); int cnt=0; while (!qu.empty()) { int c = qu.size(); cnt++; //BFS의 반복횟수 count while (c--) { int here = qu.front(); qu.pop(); //각 회차별 작업을 여기서 해준다. } } } | cs |
이런식으로 그 회차별 queue의 size를 미리 체크하고 그만큼만 반복시키면 간단하다.