Hoon222y

BFS 반복 횟수 카운트 본문

코딩/사소한 팁

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를 미리 체크하고 그만큼만 반복시키면 간단하다.

Comments