정답
python
import sys
sys.setrecursionlimit(100000) # 무한 재귀를 막기 위해 넣는다.
input = sys.stdin.readline
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)
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(graph, r, visited)
for i in range(1, len(order)):
print(order[i])
설명
- 몇 번째로 출력되는지에 주목해야 한다.