[Python] 17472번

체인지영·2021년 4월 1일
0

[Python] 백준

목록 보기
7/12

아까 미네랄도 그렇고 크게 뭉치를 하나로 보는 그런 방법을 잘 모르겠다.

dfs bfs 공부

from collections import deque

graph = {
        'A': ['B'],
        'B': ['A', 'C', 'H'],
        'C': ['B', 'D'],
        'D': ['C', 'E', 'G'],
        'E': ['D', 'F'],
        'F': ['E'],
        'G': ['D'],
        'H': ['B', 'I', 'J', 'M'],
        'I': ['H'],
        'J': ['H', 'K'],
        'K': ['J', 'L'],
        'L': ['K'],
        'M': ['H']
    }

def bfs(graph, start_node):
    visit = []
    queue = deque([start_node])

    while queue:
        node = queue.popleft()
        if node not in visit:
            visit.append(node)
            queue.extend(graph[node])

    return visit


def dfs(graph, start_node):
    visit = []
    stack = deque([start_node])

    while stack:
        node = stack.pop()
        if node not in visit:
            visit.append(node)
            stack.extend(graph[node])

    return visit


if __name__ == "__main__":
    print(bfs(graph, 'A'))
    print(dfs(graph, 'A'))
profile
Startup, FrontEnd, BlockChain Developer

0개의 댓글