백준 문제 풀이
백준 1260 파이썬 python : DFS와 BFS @@황소처럼 우직하게@@ 깔끔 숏코딩
hjp845
2020. 3. 2. 18:23
반응형
import sys
input = sys.stdin.readline
n, m, v = map(int, input().split())
adj_lst = [[] for i in range(n + 1)]
visited = [False for i in range(n + 1)]
for i in range(m):
a, b = map(int, input().split())
adj_lst[a].append(b)
adj_lst[b].append(a)
for i in range(n):
adj_lst[i].sort()
def dfs(v, lst):
lst += [v]
for nxt in adj_lst[v]:
if nxt not in lst:
dfs(nxt, lst)
return lst
def bfs(v):
lst = []
q = [v]
visited[v] = True
while q:
now = q.pop(0)
lst += [now]
for nxt in adj_lst[now]:
if not visited[nxt]:
q.append(nxt)
visited[nxt] = True
return lst
print(*dfs(v, []))
print(*bfs(v))
진화했습니다.
반응형