1260番DFSとBFS
## 내 풀이
import sys
from collections import deque
n,m,v=map(int,sys.stdin.readline().split())
# n은 정점개수. m은 간선개수. v는 탐색 시작 노드.
graph=[[0]*(n+1) for i in range(n+1)]
visited=[0]*(n+1)
visited_bfs=[0]*(n+1)
# 0 노드는 제외하고 생각 (헷갈리지 않게 하기 위해)
queue=deque()
for i in range(m):
a,b=map(int,input().split())
graph[a][b]=graph[b][a]=1 # 서로 연결된 노드는 1로 표시한다.
def dfs(v):
visited[v]=True
print(v,end=' ')
for i in range(1,n+1):
if visited[i]==0 and graph[v][i]==1:
dfs(i)
def bfs(v): # bfs는 재귀 사용 X
queue.append(v) # 현재 노드를 저장.
visited_bfs[v]=True # 방문한 노드는 1로 표시
while queue:
x=queue.popleft()
print(x,end=' ')
for i in range(1,n+1):
if visited_bfs[i]==0 and graph[x][i]==1:
queue.append(i)
visited_bfs[i]=1 # 방문 노드 표시
dfs(v)
print()
bfs(v)
https://www.acmicpc.net/problem/1260
Reference
この問題について(1260番DFSとBFS), 我々は、より多くの情報をここで見つけました https://velog.io/@csy9604/1260번-DFS와-BFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol