[실버3]
문제 링크 : https://www.acmicpc.net/problem/2606
7
6
1 2
2 3
1 5
5 2
5 6
4 7
4
def dfs(v=1): #시작 기본값 1번 컴퓨터
visited[v]=True
for i in graph[v]:
if not visited[i]:
dfs(i)
n=int(input())
graph=[[] for _ in range(n+1)]
visited=[False]*(n+1)
for _ in range(int(input())):
x,y=map(int,input().split())
graph[x].append(y)
graph[y].append(x)
dfs()
print(sum(visited)-1)
기본 DFS
알고리즘을 그대로 구현하고
마지막에 방문개수 -1만 해주면 되는 간단한 문제이다.
방문한 노드의 수
-1
= 감염된 컴퓨터의 수
-1
= 1번이 감염시킨 컴퓨터의 수