알고리즘/알고리즘 분류

[알고리즘] BFS(queue) vs DFS (stack)

개발하는 동그리 2025. 4. 12. 22:10
코딩 테스트 이미지

 

Deque / BFS / DFS 정리
BFS (queue) -> add / poll : 먼저 들어온 데이터가 먼저 나가는 구조
- FIFO (First In, First Out)
- 삽입 (add): 데이터를 **뒤쪽(Rear)**에 추가.
- 삭제 (poll): 데이터를 **앞쪽(Front)**에서 제거.

DFS (stack) -> push / pop : 나중에 들어온 데이터가 먼저 나가는 구조
- LIFO (Last In, First Out)
- 삽입 (Push): 데이터를 **위쪽(Top)**에 추가.
- 삭제 (Pop): 데이터를 **위쪽(Top)**에서 제거.


-> BFS : Queue : 너비 우선 (Breadth) : 가까운 정점부터 탐색.
-> DFS : Stack : 깊이 우선 (Depth) : 최대한 깊이 탐색 후 되돌아감.
-> DFS : 재귀호출 : 깊이 우선 (Depth) : 재귀 호출 스택을 활용.