Skip to content

Commit 1327d3c

Browse files
committed
[BOJ] #1260.DFS와 BFS / 실버2 / 15(X)
1 parent af96200 commit 1327d3c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from collections import defaultdict, deque
2+
3+
N, M, V = map(int, input().split())
4+
5+
# 인접리스트로 그래프 표현
6+
graph = defaultdict(list)
7+
for _ in range(M):
8+
a, b = map(int, input().split())
9+
graph[a].append(b)
10+
graph[b].append(a)
11+
12+
for node in graph:
13+
graph[node].sort() # 정점 번호가 작은 순서대로 탐색하기 위해 정렬
14+
15+
def dfs(graph, start, visited): # visited 리스트를 재귀 호출 간에 공유해야 하므로, 함수 인자로 전달
16+
visited.append(start) # 현재 정점을 방문
17+
for neighbor in graph[start]:
18+
if neighbor not in visited: # 방문하지 않은 정점만 탐색
19+
dfs(graph, neighbor, visited)
20+
return visited
21+
22+
def bfs(graph, start):
23+
visited = [] # 방문 순서
24+
queue = deque([start])
25+
while queue:
26+
node = queue.popleft()
27+
if node not in visited: # 방문하지 않은 경우
28+
visited.append(node)
29+
queue.extend(graph[node]) # 이웃 정점 추가
30+
return visited
31+
32+
dfs_result = dfs(graph, V, [])
33+
bfs_result = bfs(graph, V)
34+
35+
print(*dfs_result)
36+
print(*bfs_result)

0 commit comments

Comments
 (0)