バックアップ1260:DFSとBFS
1774 ワード
問題解決の考え方
import sys
from collections import deque
N, M, V = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
A, B = map(int, sys.stdin.readline().split())
graph[A].append(B)
graph[B].append(A)
#DFS
visited = []
stack = [V]
while stack:
tmp = stack.pop()
if tmp not in visited:
visited.append(tmp)
plus = list(set(graph[tmp]) - set(visited))
plus.sort(reverse=True)
stack += plus
for i in range(len(visited)):
print("{} ".format(visited[i]), end="")
print()
#BFS
visited = []
queue = deque([V])
while queue:
tmp = queue.popleft()
if tmp not in visited:
visited.append(tmp)
plus = list(set(graph[tmp]) - set(visited))
plus.sort()
queue += plus
for i in range(len(visited)):
print("{} ".format(visited[i]), end="")
print()
初めて解いたDFS、BFS問題!解き方を熟知してみる
✔関連概念(リンク参照)
Reference
この問題について(バックアップ1260:DFSとBFS), 我々は、より多くの情報をここで見つけました https://velog.io/@dlehdtjq00/백준-1260번-DFS와-BFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol