백준. 2606번. 바이러스 파이썬 풀이
BFS를 사용하여 풀었지만 DFS를 사용하여 풀 수도 있다
import sys
# input = sys.stdin.readline
sys.setrecursionlimit(10**6)
from collections import deque
# 컴퓨터의 수 n
n = int(input())
# 간선의 수 m
m = int(input())
graph = [[] for _ in range(n+1)]
visited = [False] * (n+1)
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
queue = deque([1])
visited[1] = True
result = 0
while queue:
v = queue.popleft()
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
result += 1
print(result)