https://www.acmicpc.net/problem/2606
신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.
어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성하시오.
제출 66000 정답 비율 45%
#include <stdio.h>
int arr[100][100] = { 0 };
int visited[100] = { 0 };
int cnt = 0;
void dfs(int startnode, int n) {
cnt++;
visited[startnode] = 1;
for (int i = 1; i <= n; i++) {
if (arr[startnode][i] == 1 && visited[i] == 0)
dfs(i, n);
}
}
int main() {
int n, pair;
scanf("%d", &n);
scanf("&d", &pair);
for (int i = 1; i <= pair; i++) {
int a, b;
scanf("%d %d", &a, &b);
arr[a][b] = 1;
arr[b][a] = 1;
}
dfs(1, n);
printf("%d", cnt);
return 0;
}