[24480번] 알고리즘 수업 - 깊이 우선 탐색 2

HYEOB KIM·2022년 5월 26일
1

algorithm

목록 보기
17/44

백준 24480번 알고리즘 수업 - 깊이 우선 탐색 2

코드 풀이

import sys
sys.setrecursionlimit(10**6)

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 dfs(x):
    global cnt
    cnt += 1
    visited[x] = 1
    node_cnt[x] = cnt
    for i in graph[x]:
        if not visited[i]:
            dfs(i)


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

for i in node_cnt[1:]:
    print(i)
  • 24479번 문제에서 오름차순 조건이 내림차순으로 바뀐 문제로 정렬을 내림차순으로 하는 것을 제외하곤 코드가 동일합니다.
profile
Devops Engineer

0개의 댓글