forked from ndb796/python-for-coding-test
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path9.py
37 lines (33 loc) Β· 968 Bytes
/
9.py
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
from collections import deque
# BFS ν¨μ μ μ
def bfs(graph, start, visited):
# ν(Queue) ꡬνμ μν΄ deque λΌμ΄λΈλ¬λ¦¬ μ¬μ©
queue = deque([start])
# νμ¬ λ
Έλλ₯Ό λ°©λ¬Έ μ²λ¦¬
visited[start] = True
# νκ° λΉ λκΉμ§ λ°λ³΅
while queue:
# νμμ νλμ μμλ₯Ό λ½μ μΆλ ₯
v = queue.popleft()
print(v, end=' ')
# ν΄λΉ μμμ μ°κ²°λ, μμ§ λ°©λ¬Ένμ§ μμ μμλ€μ νμ μ½μ
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
# κ° λ
Έλκ° μ°κ²°λ μ 보λ₯Ό 리μ€νΈ μλ£νμΌλ‘ νν(2μ°¨μ 리μ€νΈ)
graph = [
[],
[2, 3, 8],
[1, 7],
[1, 4, 5],
[3, 5],
[3, 4],
[7],
[2, 6, 8],
[1, 7]
]
# κ° λ
Έλκ° λ°©λ¬Έλ μ 보λ₯Ό 리μ€νΈ μλ£νμΌλ‘ νν(1μ°¨μ 리μ€νΈ)
visited = [False] * 9
# μ μλ BFS ν¨μ νΈμΆ
bfs(graph, 1, visited)