

문제를 살펴보면 이전 문제처럼 너비 우선 탐색으로 해결을 하되, 이번에는 인접 정점을 내림차순으로 방문한다
따라서 이전 코드를 그대로 사용하되, sort()를 sort(reverse=True)로 바꾸어 사용하면 정답을 확인할 수 있다
이전문제 블로그 링크 : https://reflesh02.tistory.com/168
[Baekjoon]백준 24444 알고리즘 수업 - 너비 우선 탐색 1(실버 2) - Python
문제를 살펴보면 이전 단계에서 풀었던 dfs(깊이 우선 탐색)이 아니라 bfs(너비 우선 탐색)로 해결해야하는 문제이다dfs는 한 노드에서 가능한 깊이까지 내려간 뒤 더이상 내려갈 수 없다면 한 단
reflesh02.tistory.com
import sys
input = sys.stdin.readline
from collections import deque
def bfs(start):
global cnt
queue = deque([start])
visited[start] = cnt
while queue:
cur = queue.popleft()
for neighbor in graph[cur]:
if visited[neighbor] == 0:
cnt += 1
visited[neighbor] = cnt
queue.append(neighbor)
vertex, edge, starting = map(int, input().split())
graph = [[] for _ in range(vertex+1)]
visited = [0] * (vertex+1)
cnt = 1
for _ in range(edge):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
for g in graph:
g.sort(reverse=True)
bfs(starting)
for i in range(1, vertex+1):
print(visited[i])


'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 2667 단지번호붙이기(실버 1) - Python/C/C++ (1) | 2025.08.28 |
|---|---|
| [Baekjoon]백준 1260 DFS와 BFS(실버 2) - Python (0) | 2025.05.12 |
| [Baekjoon]백준 24444 알고리즘 수업 - 너비 우선 탐색 1(실버 2) - Python (0) | 2025.05.08 |
| [Baekjoon]백준 1202 보석 도둑(골드 2) - Python (0) | 2025.05.05 |
| [Baekjoon]백준 17626 Four Squares(실버 3) - Python (0) | 2025.05.03 |