프로그래밍/알고리즘

[Python] 백준 24444번 - 알고리즘 수업 - 너비 우선 탐색 1

고등어찌짐 2022. 7. 7. 22:06
from collections import deque

def bfs(graph, strt, visited):
  q = deque([strt])
  visited[strt] = 1
  order = 2

  while q:
    node = q.popleft()
    for next in graph[node]:
      if visited[next] == 0 :
          q.append(next)
          visited[next] = order
          order += 1

if __name__ == '__main__':
  n, m, r = map(int, input().split())
  graph = [[] for _ in range(n+1)]
  visited = [ 0 for _ in range(n+1)]

  for i 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()

  bfs(graph, r, visited)
  for i in visited[1:]:
      print(i)