Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

세상의 모든 알고리즘

[백준 1260번 python] DFS와 BFS 문제 본문

python

[백준 1260번 python] DFS와 BFS 문제

952hi 2021. 11. 1. 19:47

https://www.acmicpc.net/problem/1260

 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사

www.acmicpc.net

 

 

 

 

 

 

from collections import deque
  
n,m,v = map(int, input().split())
graph = [[] for _ in range(n+1)]

visited_dfs = [0] * (n+1)
visited_bfs = [0] * (n+1)


for _ in range(m):
    a,b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)


def dfs(v):
    visited_dfs[v] = 1
    print(v,end=' ')
    
    graph[v].sort()
    
    for i in graph[v]:
        if visited_dfs[i] == 0:
            dfs(i)
        
def bfs(v):
    visited_bfs[v] = 1
        
    q = deque()
    q.append(v)
    
    while q:
        a = q.popleft()
        print(a,end=" ")
        
        graph[a].sort()
        
        for i in graph[a]:
            if visited_bfs[i] == 0:
                visited_bfs[i] =1
                q.append(i)

dfs(v)
print()
bfs(v)

느낀점

dfs쪽 오류가 많이 나와서 리스트 초기화부터 전부 바꾸면서 해결하기 힘들었다.

두가지 정점을 탐색가능할때 작은 수 부터 탐색하는것을 생각안하고 계속 오답이 나와서 찾는데 힘들었다..