import sys
input = sys.stdin.readline
sys.setrecursionlimit(10000)
def connect(start):
stack = [start]
visited[start]=True
while stack:
node = stack.pop()
for no in graph[node]:
if not visited[no]:
visited[no] = True
stack.append(no)
n,m = map(int,input().split())
graph = {i:[] for i in range(1,n+1)}
for _ in range(m):
a,b = map(int,input().split())
graph[a].append(b)
graph[b].append(a)
visited = [False]*(n+1)
answer = 0
for i in range(1,n+1):
if not visited[i]:
answer += 1
connect(i)
print(answer)
풀이
dfs 문제라 간단한 문제였는데 (세상에 이제 dfs가 간단하다고 말하는 날이 오다니...!)
시간초과 때문에 다소 난항을 겪은 문제였다....
import sys를 사용해야한다는 건 알고 있었지만 형태를 어떻게 입력해야할지 감이 안왔다. 그래서 여러번 시도했고 시도 끝에 input = sys.stdin.readline 이렇게 입력하면 된다는 결론을 얻었다.