import sys
from collections import deque
def dfs(start):
visit[start] = 1
for s in adjacent[start]:
if visit[s] == 0:
dfs(s)
N = int(input())
E = int(input())
adjacent = [[] for _ in range(N+1)]
for e in range(E):
t0, t1 = map(int, sys.stdin.readline()[:-1].split())
adjacent[t0].append(t1)
adjacent[t1].append(t0)
visit = [0] * (N+1)
dfs(1)
print(sum(visit) - 1)
- 인접리스트를 통해 노드간의 관계 그래프를 표현
- visit 리스트를 통해 노드를 방문했는 지 방문하지 않았는 지를 확인
- 1번 컴퓨터부터 시작하여 dfs 시작
-> 'visit 리스트 원소들의 총합 - 1'이 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수가 됨