import collections
import sys
def solution(lst, v):
graph = collections.defaultdict(list)
for a, b in lst:
graph[a].append(b)
graph[b].append(a)
# 작은 수부터 탐방
for key in graph.keys():
graph[key].sort()
def dfs(v, discovered=[]):
discovered.append(v)
for w in graph[v]:
if w not in discovered:
discovered = dfs(w, discovered)
return discovered
def bfs(v):
discovered = [v]
queue = [v]
while queue:
v = queue.pop(0)
for w in graph[v]:
if w not in discovered:
discovered.append(w)
queue.append(w)
return discovered
dfs_result = dfs(v)
bfs_result = bfs(v)
print(' '.join(map(str, dfs_result)))
print(' '.join(map(str, bfs_result)))
return
input = sys.stdin.readline
# n: 정점의 개수, m: 간선의 개수, v: 탐색 시작 번호
n, m, v = map(int, input().split())
lst = []
for _ in range(m):
a, b = map(int, input().split())
lst.append((a,b))
solution(lst, v)
'알고리즘 테스트' 카테고리의 다른 글
[프로그래머스] 네트워크 (0) | 2021.04.17 |
---|---|
[백준 10989번] 수 정렬하기 3 (Python) (0) | 2021.02.17 |
[백준 1427번] 소트인사이드 (Python) (0) | 2021.01.20 |
[백준 2751번] 수 정렬하기2 (Python) (0) | 2021.01.19 |
[백준 11047번] 동전 0 (Python) (0) | 2021.01.15 |