-
BFS (Breadth-First Search)Python/알고리즘 2022. 8. 30. 18:49
너비 우선 탐색
from collections import deque
# BFS 메서드 정의
def bfs(graph, start, visited):
#큐(Queue) 구현을 위해 deque 라이브러리 사용
queue = deque([start])
#현재 노드를 방문 처리
visited[start] = True
#큐가 빌 때까지 반목
while queue:
#큐에서 하나의 원소를 뽑아 출력하기
v = queue.popleft()
print(v, end=' ')
# 아직 방문하지 않은 인접한 원소들을 큐에 삽입
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
# 각 노드가 연결된 정보를 표현 (2차원 리스트)
graph = [
[],
[2, 3, 8],
[1, 7],
[1, 4, 5],
[3, 5],
[3, 4],
[7],
[2, 6, 8],
[1, 7]
]
# 각 노드가 방문된 정보를 표현 (1차원 리스트)
visited = [False] * 9
# 정의된 BFS 함수 호출
bfs(graph, 1, visited)1 2 3 8 7 4 5 6
출처 : https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4
'Python > 알고리즘' 카테고리의 다른 글
DFS & BFS 기초 문제풀이 < 미로 탈출 > (0) 2022.08.30 DFS & BFS 기초 문제풀이 < 음료수 얼려 먹기 > (0) 2022.08.30 DFS (Depth-First-Search) (0) 2022.08.30 최대공약수 계산 (유클리드 호제법) (0) 2022.08.30 팩토리얼 (1) 2022.08.30