from collections import deque
import sys
input = sys.stdin.readline
def dfs(v):
print(v,end=' ')
visited[v]=1
for i in range(1,n+1):
if visited[i]==0 and matrix[v][i]==1:
dfs(i)
def bfs(v):
queue =deque()
queue.append(v)
visited[v]=0
while(queue):
v = queue[0]
print(queue.popleft(),end=' ')
for i in range(1,n+1):
if visited[i]==1 and matrix[v][i]==1:
queue.append(i)
visited[i]=0
n,m,v = map(int,input().split())
matrix = [[0]*(n+1) for _ in range(n+1)] #인접행렬 생성
visited = [0 for _ in range(n+1)]
for i in range(m):
x,y = map(int,input().split())
matrix[x][y]=1
matrix[y][x]=1
dfs(v)
print()
bfs(v)
DFS 와 BFS 기본 구현문제이다.
인접리스트말구 인접행렬로 그래프를 표현해줬는데
딕셔너리 리스트를 활용한 방법으로 풀 방법을 강구해 보자.