본문 바로가기
알고리즘/dfs,bfs

[파이썬🐍] 백준 1260 : DFS와 BFS

by 코딩개미뚠뚠 2021. 4. 7.
반응형

dfs랑 bfs는 정말 어렵다..(bfs가 더 어려움)

차근차근 계속 연습하면 되겠지??

N,M,V = map(int,input().split())  #정점, 간선갯수, 시작 번호
matrix = [[0]*(N+1) for _ in range(N+1)]
for i in range(M):
    a,b=map(int,input().split())
    matrix[a][b] = matrix[b][a] = 1
visited = [0]*(N+1)

def dfs(V):
    visited[V] = 1
    print(V,end =' ')
    for i in range(1,N+1):
        if visited[i] == 0 and matrix[V][i]==1:
            dfs(i)

def bfs(V):
    queue = [V]
    visited[V] = 0
    while queue:
        V = queue.pop(0) #첫번째 데이터 꺼내서 V에 저장
        print(V, end =' ')
        for i in range(1,N+1):
            if visited[i] == 1 and matrix[V][i] == 1:
                queue.append(i)
                visited[i] = 0

dfs(V)
print()
bfs(V)

 

정말 짧은데 이런 것 쯤은 언젠가 식은 죽 먹기가 되면 좋겠다.

bfs에서 while queue 부분 꼭 기억하기!! 까먹지 말기

 

 

P.S. 첫 코드 글이라니 신기하다. 

 

반응형

댓글