#1300
Silver I

알고리즘 수업 - 깊이 우선 탐색 1

시간 제한
1s
메모리 제한
512MB
제출
35
정답
14
맞힌 사람
14
정답 비율
40.0%

문제

NN개의 정점과 MM개의 간선으로 구성된 무방향 그래프가 주어집니다. 정점 번호는 1번부터 NN번까지이고, 모든 간선의 가중치는 1입니다.

시작 정점 RR에서 시작하여 깊이 우선 탐색(DFS)으로 그래프의 정점들을 방문할 때, 각 정점의 방문 순서를 구하는 프로그램을 작성하세요.

단, 인접한 정점들을 방문할 때는 정점 번호가 작은 것을 먼저 방문(오름차순 방문)해야 합니다.

입력

첫째 줄에 정점의 수 NN, 간선의 수 MM, 시작 정점 RR이 공백으로 구분되어 주어진다. (5≤N≤100,000;1≤M≤200,000;1≤R≤N)(5 \le N \le 100,000; 1 \le M \le 200,000; 1 \le R \le N)

다음 MM개의 줄 중 ii번째 줄에는 간선의 양 끝점 uiu_i와 viv_i가 공백으로 구분되어 주어진다. (1≤ui<vi≤N)(1 \le u_i < v_i \le N)

모든 간선의 (ui,vi)(u_i, v_i) 쌍은 서로 다르며, 무방향 간선이다.

출력

첫째 줄부터 NN개의 줄에 걸쳐 정답을 출력한다. ii번째 줄에는 정점 ii의 방문 순서를 출력한다. 시작 정점 RR의 방문 순서는 1이다.

단, 시작 정점에서 방문할 수 없는 정점의 경우 0을 출력한다.

예제 입력 1

5 4 1
1 2
1 3
2 3
3 4

예제 출력 1

1
2
3
4
0

힌트

시작 정점은 1번이다. 1번 정점과 인접한 정점은 2번, 3번이다. 오름차순으로 2번을 먼저 방문한다(방문 순서 2). 2번 정점과 인접한 정점은 1번(방문됨), 3번이다. 3번을 방문한다(방문 순서 3). 3번 정점과 인접한 정점은 1번(방문됨), 2번(방문됨), 4번이다. 4번을 방문한다(방문 순서 4). 4번 정점은 더 이상 방문할 인접 정점이 없으므로 백트래킹한다. 모든 탐색을 마친 후에도 5번 정점은 도달할 수 없으므로 방문 순서는 0이 된다.

따라서 정점 1, 2, 3, 4, 5의 방문 순서는 각각 1, 2, 3, 4, 0이다.

문제를 만든 사람
표강준
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람
#순위사용자언어시간메모리코드 길이
6445🥇
박지훈
C++60ms13716KB1036B
8480🥈
짬뽕빵
C++61ms11412KB1004B
6396🥉
박준혁
C++99ms30036KB910B
64434
이일우
PyPy341ms150756KB721B
64675
김현종
Python363ms47420KB720B
91416
이재준
Python379ms49028KB636B
64747
고수아
Python380ms47752KB647B
64428
홍진영
PyPy390ms149696KB474B
85189
강현욱
Python428ms51444KB702B
633810
표강준
Python448ms48116KB1125B
646611
유혜윤
Python519ms48216KB691B
640312
박정현
Python636ms49596KB607B
646513
이채환
Python821ms57868KB754B
645714
진원
Java857ms139300KB1627B
난이도 투표
Silver I5명 투표· 6개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
9141
맞았습니다
Python379ms49028KB636B2026. 06. 26. 07:26
8518
맞았습니다
Python428ms51444KB702B2026. 05. 28. 23:56
8517
런타임 에러
Python--649B2026. 05. 28. 23:54
8516
틀렸습니다
Python--590B2026. 05. 28. 23:50
8480
맞았습니다
C++61ms11412KB1004B2026. 05. 27. 07:16
8479
틀렸습니다
C++--1079B2026. 05. 27. 07:13
6474
맞았습니다
Python380ms47752KB647B2026. 05. 19. 11:31
6473
런타임 에러
Python--578B2026. 05. 19. 11:30
6471
틀렸습니다
Python--544B2026. 05. 19. 11:28
6470
틀렸습니다
Python--547B2026. 05. 19. 11:27
6469
틀렸습니다
Python--552B2026. 05. 19. 11:27
6467
맞았습니다
Python363ms47420KB720B2026. 05. 19. 11:23
6466
맞았습니다
Python519ms48216KB691B2026. 05. 19. 11:22
6465
맞았습니다
Python821ms57868KB754B2026. 05. 19. 11:20
6464
틀렸습니다
Python--647B2026. 05. 19. 11:19
6463
틀렸습니다
Python--752B2026. 05. 19. 11:19
6461
틀렸습니다
Python--398B2026. 05. 19. 11:18
6457
맞았습니다
Java857ms139300KB1627B2026. 05. 19. 11:17
6455
틀렸습니다
Java--1522B2026. 05. 19. 11:15
6454
틀렸습니다
Python--617B2026. 05. 19. 11:15