Skip to content

Commit 810932a

Browse files
committed
[BOJ] #24480. 알고리즘 수업 - 깊이 우선 탐색 2 / 실버2 / 성공
1 parent 448eb3d commit 810932a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sys
2+
sys.setrecursionlimit(10**6) # 최대 재귀한도 깊이
3+
input = sys.stdin.readline
4+
5+
# DFS 함수
6+
def dfs(v):
7+
global order
8+
visited[v] = order # 방문하면 순서 넣기
9+
order += 1 # 다음 순서로 넘어가기
10+
11+
for u in sorted(graph[v], reverse=True): # 내림차순으로 인접노드 방문하기 위해 정렬
12+
if visited[u] == 0: # 방문 안 한 노드면 dfs탐색
13+
dfs(u)
14+
15+
16+
# 초기화
17+
n, m, r = map(int, input().strip().split()) # n: 정점의 수, m: 간선의 수, r: 시작 정점
18+
graph = [[] for _ in range(n+1)]
19+
visited = [0] * (n+1)
20+
order = 1
21+
22+
# 그래프 연결
23+
for _ in range(m):
24+
u, v = map(int, input().strip().split())
25+
graph[u].append(v)
26+
graph[v].append(u)
27+
28+
dfs(r)
29+
30+
# 해당노드를 몇 번째로 방문했는지 출력
31+
for i in range(1, len(visited)):
32+
print(visited[i])

0 commit comments

Comments
 (0)