import sys
sys.stdin = open( "input.txt", "r")
def dfs(c):
# 방문정보
v[c] = 1
# 방문기록
ans_dfs.append(c)
# 다음 방문지
for i in adj[c]:
if v[i] == 0:
dfs(i)
def bfs(s):
# 필요한 q, v[], 변수 생성
q = []
# Q에 초기데이터 삽입
q.append(s)
ans_bfs.append(s)
v[s] = 1
while q:
c = q.pop(0)
for n in adj[c]:
if v[n] == 0:
# q 삽입
q.append(n)
# 방문정보
v[n] = 1
# 방문기록
ans_bfs.append(n)
# 정점 N과 간선 M의 개수, 시작 정점 번호 V
N,M,V = map( int, input().split() )
# 인접 리스트 생성
adj = [[] for _ in range(N+1) ]
# 인접리스트 채우기
for _ in range(M):
s, e = map( int, input().split() )
# 양방향
adj[s].append(e)
adj[e].append(s)
# 오름차순 정렬
for i in range( 1, N+1 ):
adj[i].sort()
# dfs 방문정보, 방문기록
v = [0] * ( N + 1)
ans_dfs = []
dfs(V)
# bfd 방문정보, 방문기록
v = [0] * ( N + 1)
ans_bfs = []
bfs(V)
print( *ans_dfs )
print( *ans_bfs )
'Algorithm' 카테고리의 다른 글
[BaekJoon] 백준 알고리즘 14889번 / 스타트와 링크 / 백트래킹(DFS) / Python (0) | 2023.03.07 |
---|---|
[BaekJoon] 백준 알고리즘 1697번 / 숨바꼭질 / BFS / Python (0) | 2023.03.04 |
[BaekJoon] 백준 알고리즘 14503번 / 로봇 청소기 / 시뮬레이션 / Python (0) | 2023.03.02 |
[BaekJoon] 백준 알고리즘 14888번 / 연산자 끼워넣기 / 백트래킹 / Python (0) | 2023.03.01 |
[BaekJoon] 백준 알고리즘 15649번 / N과 M(1)/ 백트래킹 / Python (0) | 2023.02.28 |