문제출처 : https://www.acmicpc.net/problem/11724
입력을 받아서 board에 저장해준다.
방문 여부를 나타내는 visited리스트와 board리스트를 이용해 해결하였다.
import sys
sys.setrecursionlimit(10000)
input = sys.stdin.readline
def dfs(n):
visited[n] = True
for i in board[n]:
if visited[i] == False and board[i]:
dfs(i)
n,m = map(int, input().split())
board = [[] for _ in range(n+1)]
visited = [False] * (n+1)
cnt = 0
for i in range(m):
idx,val = map(int,input().split())
board[idx].append(val)
board[val].append(idx)
for i in range(1,n+1):
if visited[i] == False:
dfs(i)
cnt += 1
print(cnt)