저번에 풀었던 문제랑 거의 똑같은 문제였다. 복습하는 느낌이었다.
여기서 주의 할 점은 input= sys.stdin.readline을 안하니깐 시간 초과가 떴었는데 이거 적으니깐 초과가 안됐다. 앞으로 무조건 해줘야겠다.
import sys
sys.setrecursionlimit(10**7)
input = sys.stdin.readline #이거 무조건 해주기
N,M=map(int,input().split())
visited=[0]*(N+1)
graph=[[]for _ in range(N+1)]
cnt=0
def dfs(v):
visited[v]=1
for i in graph[v]:
if visited[i]==0:
dfs(i)
for _ in range(M):
a,b=map(int,input().split())
graph[a].append(b)
graph[b].append(a)
for j in range(1,N+1):
if visited[j]==0:
dfs(j)
cnt+=1
print(cnt)