문제링크 : https://www.acmicpc.net/problem/1260
기본적인 Dfs Bfs문제이다. 처음 설정할때 matrix의 사이즈를 1을 늘려주어 따로 변경해주지 않았다.
import sys
N, M, V = map(int, sys.stdin.readline().split())
matrix = [[0] * (N+1) for _ in range(N+1)]
for _ in range(M):
list_a = list(map(int,sys.stdin.readline().split()))
matrix[list_a[0]][list_a[1]] = 1
matrix[list_a[1]][list_a[0]] = 1
def dfs(index , visited):
if index in visited:
return
visited.append(index)
for i in range(N+1):
if matrix[index][i] == 1:
dfs(i,visited)
return visited
def bfs(visited):
queue.append(V)
while len(queue) != 0:
temp = queue.pop(0)
if temp in visited:
continue
visited.append(temp)
for i in range(N+1):
if matrix[temp][i] ==1:
queue.append(i)
return visited
queue = []
print(*dfs(V, []))
print(*bfs([]))