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)


  • bfsも返事を書いていると思って、狂ってうろうろしていました.
  • 再帰文は
  • dfsでのみ使用され、ナビゲートされたノード上でより深いナビゲーションが実行されます.
  • に接続するノードを0と1(重要)
  • として表す方法
    https://www.acmicpc.net/problem/1260