[문제보기]
2606. 바이러스
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어��
www.acmicpc.net
[풀이과정]
vector를 사용하여 트리를 형성해준 후 BFS 알고리즘을 사용하여 1번 컴퓨터와 연결된 컴퓨터를 찾았다.
[소스코드]
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int n, m, ans = 0;
bool visit[101];
vector<vector<int>> v;
queue<int> q;
void BFS(){
while(!q.empty()){
int node = q.front();
q.pop();
for(int i=0; i<v[node].size(); i++){
int next = v[node][i];
if(!visit[next]){
visit[next] = true;
q.push(next);
ans++;
}
}
}
}
int main(){
cin >> n >> m;
v = vector<vector<int>>(n+1, vector<int>());
for(int i=0; i<m; i++){
int a, b;
cin >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
q.push(1);
visit[1] = true;
BFS();
cout << ans;
}
'알고리즘 스터디 > Beakjoon' 카테고리의 다른 글
| [백준 10026][C++] 적록색약 (Gold 5) (0) | 2020.09.29 |
|---|---|
| [백준 1753][C++] 최단경로 (Gold 5) (0) | 2020.09.29 |
| [백준 11725][C++] 트리의 부모 찾기 (Silver 2) (0) | 2020.09.28 |
| [백준 1991][C++] 트리 순회 (Silver 1) (0) | 2020.09.28 |
| [백준 3687][C++] 성냥개비 (Gold 2) (0) | 2020.09.26 |