Beakjoon 2606 바이러스
in Algorithm
문제 링크 : https://www.acmicpc.net/problem/2606
나의 풀이
1번 컴퓨터를 시작 정점으로 dfs를 시작하여 바이러스에 걸리게 되는 컴퓨터의 수를 구할 수 있다.
풀이 코드 : 2606 바이러스
#include <stdio.h>
#include <vector>
using namespace std;
vector<int> node[100];
int visit[100];
int dfs(int start){
int count = 0;
vector<int> stack;
stack.push_back(start);
while(!stack.empty()){
int n = stack.back();
stack.pop_back();
visit[n] = 1;
count++;
for(int i=0;i<node[n].size();i++){
int next = node[n][i];
if(visit[next] == 0){
visit[next] = 1;
stack.push_back(next);
}
}
}
return count;
}
int main(){
int N, M, a, b;
scanf("%d", &N);
scanf("%d", &M);
for(int i=0;i<M;i++){
scanf("%d %d", &a, &b);
node[a].push_back(b);
node[b].push_back(a);
}
int answer = dfs(1);
printf("%d",answer-1);
}