
===개념 요약===
| DFS(Depth-First Search) | BFS(Breadth-First Search) | |
| 기본개념 | 시작노드에서 부터 탐색할 수 있는 최대 깊이로 탐색을 진행한 후, 되돌아 가며 방문하지 않은 노드를 방문한다. | 시작노드에서부터 인접한 노드 부터 모두 방문하며, 방문한 노드를 큐에 저장하고 먼저 저장된 노드부터 출력한다. |
| 구현방법 | 스택, 재귀 | 큐 |
| 사용목적 | 미로찾기, 그래프 구조파악 | 최단거리(가중치x), 노드간 최단거리 |
===기본 자료구조===
| 스택(stack) | 큐(queue) | |
| 기본 개념 | 쌓아간다는 의미로, 한쪽(rear)에서만 시간순서에 따라 데이터가 쌓이고 역순으로 데이터가 빠져나가는 구조를 가진다. | 줄을 선다는 의미로, 한쪽(rear, 뒤)에서는 데이터가 들어오고 반대쪽에(front, 앞)서는 나가는 구조를 가진다. |
| 구조 요약 | LIPO(or PILO, Last In First Out): 후입선출 | FIFO(or LILO, First In First Out): 선입선출 |
| 사용 목적 | 데이터를 쌓아 역순으로 처리할 때 사용 / DFS 구현 | 들어온 순서대로 처리해야할때 / BFS 구현 |
| 비고 | - 빈 스택에서 데이터 추출: stack underflow - 스택이 넘치는 것 : stack overflow - stack = list() |
- deque: 양방향에서 push/pop이 모두 가능한 구조 - from collections import deque - q = deque(list) |
'프로그래밍 > Coding' 카테고리의 다른 글
| [기초문법] sys.stdin ; 3 method ; in python (1) | 2026.01.12 |
|---|---|
| [기초문법] sys.stdin.readline (feat. input()) (0) | 2025.12.29 |
| [자료구조] 최단거리 알고리즘 문제 정리 (0) | 2025.01.30 |
| [문제리뷰] 수식 최대화 -python (programmers,Lv2) (0) | 2024.12.29 |
| [자료구조] 이진 탐색 트리(BST) 기본 개념 -python (0) | 2024.12.17 |