728x90
반응형
코딩테스트를 풀다보면 꼭 만나면 BFS와 DFS를 정리해보면서 기본을 다져보려 해요!
BFS (Breadth First Search, 넓이 우선 탐색) - Level order
- 최단거리 검색을 위해 Queue 사용 -> First in Frist Out (FIFO) 개념 사용
- 전체 노드를 같은 레벨에서 돌며 진행되는 traversal approac (순회적 접근) 사용
- 타겟이 가까울 때 유용함
- 전체를 탐색하기 때문에 DFS보다 느림
- Backtracking (역추적 불가)
DFS (Depth First Search, 깊이 우선 탐색) - Preorder, Inorder, Postorder
- 단거리 탐색을 위해 Stack 구조 사용 -> Last in Frist Out (LIFO) 개념 사용
- DFS 역시 traversal approach 이지만 root node에서 시작해서 최대한 멀리 갔다가 돌아오는 형식
- 타겟이 멀리 있을 때 유용함
- 재귀적 알고리즘 사용으로 backtracking 가능
DFS 관련 예제를 알고 싶으시다면 아래 게시물을 참고하시길!
https://psygo22.tistory.com/25
728x90
반응형
'Python' 카테고리의 다른 글
Python 딕셔너리 키 값, value 값으로 정렬하는 법 (1) | 2022.09.21 |
---|---|
Heapq 알고리즘 개념 및 활용방법 정리 (1) | 2022.09.21 |
Python List append/extend와 +=의 차이점 정리 (1) | 2022.09.20 |
2진법, 8진법, 16진법, 10진법 파이썬 변환 총정리 (0) | 2022.09.12 |
Python Class 개념 한번에 이해하기 (객체,인스턴스,어트리뷰트) (0) | 2022.09.08 |
댓글