DFS와 BFS를 구현하는 문제이다.
from collections import deque
def dfs(graph, v, visited):
visited.append(v) # visited에 넣어
for ad in graph[v]:
if ad not in visited:
dfs(graph, ad, visited)
return visited
queue = deque()
def bfs(graph, v, visited_2):
queue.append(v) #큐에 넣고
visited_2.append(v) #visited에도 넣어
while queue:
node = queue.popleft()
for ad in graph[node]:
if ad not in visited_2:
queue.append(ad)
visited_2.append(ad)
return visited_2
n, m, v = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
graph[a].sort()
graph[b].sort()
visited = []
print(*dfs(graph, v, visited))
visited_2 = []
print(*bfs(graph, v, visited_2))
파이썬에서 1차원 리스트의 원소만 출력하고 싶을 때는 리스트 이름 앞에 별(*)을 붙여주면 된다!