백준 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번 문제의 조건에서
오름차순
이 내림차순
으로 바뀐 것을 제외하곤 동일합니다. 따라서 정렬을 내림차순으로 수행하면 되겠습니다.