코딩테스트/백준
백준[24480] - 알고리즘 수업 (깊이 우선 탐색 2)
문제
작성한 코드
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
N, M, R = map(int, input().split())
graph = [[] for _ in range(N+1)]
visited = [0] * (N+1)
order = 1
for _ in range(M):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
for i in range(N+1):
graph[i].sort(reverse = True)
def dfs(v):
global order
visited[v] = order
for i in graph[v]:
if visited[i] == 0:
order += 1
dfs(i)
dfs(R)
for i in range(1, N+1):
print(visited[i])
→ 이전 문제와 풀이 방식은 동일하나, 오름차순으로 방문하냐 vs 내림차순으로 방문하냐 의 차이이다.
→ 해당 문제는 내림차순으로 방문하기 때문에 : sort(reverse = True) 해주면 된다.
cf.) 이전 풀이 방식 참고
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준[24479] - 알고리즘 수업 (너비 우선 탐색 2) (0) | 2023.02.28 |
---|---|
백준[24444] - 알고리즘 수업 (너비 우선 탐색 1) (0) | 2023.02.28 |
백준[24479] - 알고리즘 수업 (깊이 우선 탐색 1) (0) | 2023.02.28 |
백준[1436] - 영화감독 숌 (0) | 2023.02.14 |
백준[7568] - 덩치 (0) | 2023.02.13 |
댓글