자료구조와 알고리듬 With Java/[프로그래머스] Algorithm

깊이 우선 탐색(DFS, Depth-First Search)

계란💕 2022. 3. 18. 17:18

1. 깊이 우선 탐색 (DFS, Depth-First Search)

  - 한 우물부터 깊이 판다.

  - 스택 이용

  Ex)

java
열기

 

 

2. 너비 우선 탐색 (BFS, Breadth-First Search)

  - 여러 우물을 동시에 같은 깊이로

  - 큐를 이용한다.

  - 최단경로찾기에 적합하다.

  - 재귀적으로 이용하기 힘듦.

  Ex)

java
열기

 

 

3. DFS와 BFS 비교

  - DFS: 자식부터 탐색/ 메모리 사용량이 적다. / 캐시 메모리에 적합 / 병렬처리에 적합 

  - BFS: 이웃부터 탐색/ 최소 깊이의 결과를 찾는다. / 깊이가 무한인 트리에도 사용가능