def dfs(graph,start,visited):
visited[start]=True
answer = 1
for node in graph[start]:
if not visited[node]:
answer += dfs(graph,node,visited)
return answer
T = int(input())
n = int(input())
graph = {i+1:[] for i in range(T)}
for _ in range(n):
n1,n2 = map(int,input().split())
graph[n1].append(n2)
graph[n2].append(n1)
visited = [False]*(T+1)
print(dfs(graph,1,visited)-1)
풀이
연결된 노드(컴퓨터)를 찾아야 하기에 dfs 알고리즘을 사용했고, 연결된 노드의 번호가 아닌 노드의 갯수를 구해야하기 때문에 함수 안에 answer라는 변수를 두었다.
그리고 단순 '연결'이기 때문에 graph[n1].append(n2) & graph[n2].append(n1)로 딕셔너리에 앞 뒤 값을 모두 append했다.