백준 1260 - DFS와 BFS
문제
코드
import sys
from collections import deque
input = sys.stdin.readline
def dfs(start):
visited[start] = True
print(start, end=' ')
for i in edge[start]:
if visited[i] == False:
dfs(i)
def bfs(start):
q= deque([start])
visited[start]=True
while q:
m=q.popleft()
print(m, end=' ')
for i in edge[m]:
if visited[i]==False:
q.append(i)
visited[i]=True
N, M, V = list(map(int, input().split()))
edge = [[] for i in range(N + 1)]
visited = [False] * (N + 1)
for i in range(M):
x, y = list(map(int, input().split()))
edge[x].append(y)
edge[y].append(x)
for i in edge:
i.sort()
dfs(V)
visited = [False] * (N + 1)
print()
bfs(V)
해설
- DFS, BFS 기초문제로 이들을 이용해서 해결하였다.