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

HYEOB KIM·2022년 5월 26일
1

algorithm

목록 보기
18/44
post-custom-banner

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

코드 풀이

import sys
from collections import deque

N, M, R = map(int, sys.stdin.readline().split(' '))

graph = [[] * (N + 1) for _ in range(N+1)]
for _ in range(M):
    a, b = map(int, sys.stdin.readline().split(' '))
    graph[a].append(b)
    graph[b].append(a)

for i in range(1, N+1):
    graph[i].sort(reverse=True)

visited = [0] * (N + 1)


def bfs(start):
    cnt = 0
    q = deque()
    q.append(start)
    visited[start] = 1
    while q:
        x = q.popleft()
        cnt += 1
        node_cnt[x] = cnt
        for i in graph[x]:
            if not visited[i]:
                visited[i] = 1
                q.append(i)


node_cnt = [0] * (N + 1)
bfs(R)

for i in node_cnt[1:]:
    print(i)
  • 24444번 문제의 조건에서 오름차순내림차순으로 바뀐 것을 제외하곤 동일합니다. 따라서 정렬을 내림차순으로 수행하면 되겠습니다.
profile
Devops Engineer
post-custom-banner

0개의 댓글