티스토리 뷰

알고리즘

BFS + Graph

geonwoopaeng@gmail.com 2020. 8. 26. 00:53

BFS(너비 우선 탐색)

 

: 경로가 있는지 탐색하는 알고리즘

: 가까운 노드부터 탐색하는 알고리즘

: 주로 queue 사용 

 

=> 최단 거리만을 가지고 있는 경우 사용

 

# 속도를 빠르게 하기 위해 deque를 사용하기도 한다.
from collections import deque

def bfs(graph, start_node):
    visited = []
    queue = list() 

    queue.append(start_node)
    count = 0 

    while queue:
        node = queue.pop(0)

        if node not in visited:
            visited.append(node)
            queue.extend(graph[node])
    
    return visited

https://ko.wikipedia.org/wiki/%EB%84%88%EB%B9%84_%EC%9A%B0%EC%84%A0_%ED%83%90%EC%83%89

 

 

 

Graph

: 노드 와 간선로 표현 

: 트리랑 다르게 순환구조를 가진다.

반응형

'알고리즘' 카테고리의 다른 글

Dijkstra(다익스트라)  (0) 2020.08.27
유클리드 호제법(최대 공약수 구하기)  (0) 2020.08.27
플로이드-워셜(Floyd-Warshall)  (0) 2020.08.26
하노이의 탑  (0) 2020.08.26
DFS  (0) 2020.08.26
공지사항
최근에 올라온 글