본문 바로가기

프로그래밍

[백준 11724 파이썬] 연결 요소의 개수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 11724번 연결 요소의 개수
# DFS
# PyPy3. Python으로 할 경우 Runtime Error
 
N, M = map(int, input().split())
graph = [[] for _ in range(N+1)]
nodes = [i for i in range(1, N+1)]
count = 0
 
 
for i in range(M):
    a,b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)
 
 
def dfs(queue, visited):
    global nodes
    if queue:
 
        vertex = queue.pop()
        visited.append(vertex)
        if vertex in nodes:
            nodes.remove(vertex)
        for node2 in graph[vertex]:
            if node2 not in visited:
                queue.append(node2)
                dfs(queue, visited)
 
 
for i in range(1, N+1):
    if i in nodes:
        dfs([i], [])
        count +=1
 
 
print(count)