문제
풀이 과정
- 연결되어 있는 모든 컴퓨터가 바이러스에 걸린다
- 1번부터 시작한다
- 어렵진 않은 문제고 인접 행렬을 사용해서 연결시키고 dfs로 재귀
#include <stdio.h>
#define MAX 101
int computer[MAX][MAX];
int visit[MAX];
int n;
int dfs(int x) {
int result = 0;
for (int i=1; i<=n; i++) {
if (computer[x][i] == 1 && visit[i] == 0) {
visit[i] = 1;
result += 1 + dfs(i);
}
}
return result;
}
int main() {
scanf("%d", &n);
int m;
scanf("%d", &m);
for (int i=0; i<m; i++) {
int a, b;
scanf("%d %d", &a, &b);
computer[a][b] = 1;
computer[b][a] = 1;
}
visit[1] = 1;
int result = dfs(1);
printf("%d", result);
return 0;
}
