[백준] 24445 알고리즘 수업 - 너비 우선 탐색 2

Hyun·2024년 2월 29일
0

백준

목록 보기
34/81
post-thumbnail
import sys
input = sys.stdin.readline
from collections import deque

n,m,r = map(int, input().split())
graph = [ [] for _ in range(n+1)]
visited = [0] * (n+1)

ans = [0] * (n+1)
ans_idx = 1

for _ in range(m):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)
    
for lst in graph:
    lst.sort(reverse=True)
    
def bfs(graph, r, visited):
    queue = deque()
    # 첫번째 노드 삽입 & 방문 처리
    queue.append(r)
    visited[r] = True
    while queue:
        # 출력
        global ans_idx
        v = queue.popleft()
        ans[v] = ans_idx # 출력 노드 순서 저장
        ans_idx += 1
        for i in graph[v]: # 방문 안한 인접한 노드들 모두 삽입 & 방문 처리
            if visited[i] == 0: 
                queue.append(i)
                visited[i] = True

bfs(graph, r, visited)
for val in ans[1:]:
    print(val)
      
    
    
profile
better than yesterday

0개의 댓글