백준 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.