정답
python
# 더 빠른 input을 위한 설정
# 무한 재귀를 막기 위해 넣는다.
import sys
sys.setrecursionlimit(100000)
input = sys.stdin.readline
# 입력
n, m, r = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
for i in graph:
i.sort()
#
visited = [False] * (n+1)
order = [0] * (n+1)
cnt = 1
# dfs 설정
def dfs(graph, v, visited):
global cnt
visited[v] = True
order[v] = cnt
cnt += 1
for i in graph[v]:
if not visited[i]:
dfs(graph, i, visited)
#
dfs(graph, r, visited)
for i in range(1, len(order)):
print(order[i])
설명
-
숫자를 넣어주는 visited 리스트와 방문 순서를 넣어주는 order 리스트를
따로 설정해야 한다. 안 그러면 같은 자리에 계속 더해지는 오류 발생.
-
몇 번째로 출력되는지에 주목해야 한다.