책/Do it! 알고리즘 코딩 테스트 자바 편
Day-8 너비 우선 탐색 BFS
댈팽이
2024. 3. 29. 17:58
728x90
1. 너비 우선 탐색
- BFS(breadth-first search)는 그래프 완전 탐색 기법 중 하나이다.
- 시작 노드에서 출발해 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색한다.
- FIFO 탐색이며 큐를 이용한다.
- 시간 복잡도는 O(노드 수 + 엣지 수)이다.
- 목표 노드에 도착하는 경로가 여러 개일 때 최단 경로를 보장한다.
2. 너비 우선 탐색 과정
BFS를 사용하려면 인접 리스트, 방문 체크 배열, 큐가 필요하다.
큐에서 노드를 꺼내고 꺼낸 노드의 인접 노드를 다시 큐에 넣는다.
방문한 노드이면 큐에 넣지 않는다.
위와 같은 과정을 큐가 빌 때까지 반복한다.
3. 예제 문제
[1260] DFS와 BFS (JAVA)
# 문제 설명 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상
spicyrisotto.tistory.com
[2606] 바이러스 (JAVA)
# 문제 설명 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된
spicyrisotto.tistory.com
728x90