Post

백준 24480번 깊이 우선탐색-2

이전문제와 완전히 동일하지만 오름차순 탐색에서 내림차순 탐색으로 변경된 문제이다

 


 

오름차순으로 정렬할때는 list.sort()이지만 내림차순으로 정렬할 때는 reverse=True가 필요하다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def dfs(k): #방문 순서를 ans리스트에 기록한다
    global cur
    ans[k] = cur
    for to_go in link[k]:
        if ans[to_go]:
            continue
        cur+=1
        dfs(to_go) 

import sys
input = sys.stdin.readline
sys.setrecursionlimit(1000000) #RecursionError해결

n,m,r = map(int,input().split())
cur = 1 #시작정점을 위한것
link = [[] for _ in range(n+1)]
ans=[0]*(n+1) #노드의 방문순서를 기록하기 위한 리스트

for _ in range(1,m+1):
    a,b = map(int,input().split())
    link[a].append(b)
    link[b].append(a)

for lis in link:
    lis.sort(reverse=True)#내림차순으로 정렬
print(link)
dfs(r)

for i in ans[1:]:
    print(i)
This post is licensed under CC BY 4.0 by the author.