그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.
from collections import deque
n, m, v = map(int, input().split())
graph = []
for _ in range(n + 1):
graph.append([])
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
for g in graph:
g.sort()
visited = [False] * (n + 1)
def dfs(v, visited):
if visited[v] == False:
visited[v] = True
print(v, end=" ")
for i in graph[v]:
dfs(i, visited)
def bfs(v, visited):
queue = deque()
queue.append(v)
while queue:
x = queue.popleft()
if visited[x] == True:
visited[x] = False
print(x, end=" ")
for i in graph[x]:
queue.append(i)
dfs(v, visited)
print()
bfs(v, visited)