프로그래밍/알고리즘
[Python] 백준 24445번 - 알고리즘 수업 - 너비 우선 탐색 2
고등어찌짐
2022. 7. 8. 20:42
from collections import deque
def bfs(graph, visited, start):
q = deque([start])
visited[start] = 1
order = 2
while q:
next = q.popleft()
for n_idx in graph[next]:
if visited[n_idx] == 0 :
q.append(n_idx)
visited[n_idx] = order
order += 1
if __name__ == '__main__':
n, m, r = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited = [0] * (n+1)
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
for i in range(n+1):
graph[i].sort()
graph[i].reverse()
bfs(graph, visited, r)
for v in visited[1:]:
print(v)