출처 : https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
고려사항
- BFS
- 1부터 시작이니 1은 카운트 하지 않는다.
- 양방향 그래프임을 주의! => network[src]에 dst 넣고, 반대로도!
- queue 에 넣는 순간 ++ans
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
bool visit[101];
int main() {
int n, m, src, dst, dstSize, ans = 0;
vector<int> network[101];
queue<int> q;
cin>>n>>m;
for(int i=0;i<m;++i){
cin>>src>>dst;
network[src].push_back(dst);
network[dst].push_back(src);
}
q.push(1);
visit[1] = true;
while(!q.empty()){
src = q.front();
q.pop();
dstSize = network[src].size();
for(int i=0;i<dstSize;++i){
dst = network[src][i];
if(!visit[dst]){
q.push(dst);
visit[dst] = true;
++ans;
}
}
}
cout<<ans;
return 0;
}
'BOJ 백준 > DFS + BFS' 카테고리의 다른 글
백준 02178 - 미로 탐색 (0) | 2020.12.20 |
---|---|
백준 11724 - 연결 요소의 개수 (0) | 2020.01.05 |
백준 10451 - 순열 사이클 (DFS) (0) | 2020.01.03 |