← 질문 목록
#164깊이 0
그리디 알고리즘과 동적 계획법은 무엇으로 구분하는가?
자료구조 · 알고리즘심화
최적 부분 구조를 가졌으나, 현재의 최적해를 선택하는지 아니면 모든 경우의 수를 고려하여 결정하는지로 구분한다.
| 기준 | 그리디 알고리즘 | 동적 계획법 |
|---|---|---|
| 선택 방식 | 현재의 최적해를 선택 | 모든 부분 문제의 해를 조합 |
| 효율성 | 연산량이 적고 빠름 | 연산량이 많고 정확함 |
| 최적성 보장 | 그리디 선택 속성이 있을 때만 | 상태와 점화식이 문제를 맞게 담았을 때 |
그리디는 매 순간 가장 이득인 것을 고르고 뒤를 돌아보지 않는다. 그래서 지금 이득인 선택이 나중을 막는 문제에서는 답을 놓친다.
반면 동적 계획법은 작은 문제의 답을 저장해 중복 계산을 없앤다. 저장하는 방식은 메모이제이션만이 아니라 아래에서 위로 표를 채우는 것도 있다. 최적화가 아닌 경우의 수 세기에도 쓴다.
두 방식의 차이는 문제를 읽는 기준이 된다. 최적 부분 구조가 있는지, 겹치는 부분 문제가 있는지를 먼저 확인하게 만든다.
추천 꼬리질문
관련 질문
- 최소 신장 트리(MST)를 구성하는 알고리즘으로 무엇을 선택하는가?자료구조 · 알고리즘최소 신장 트리(MST)를 구성하는 프림과 크루스칼 알고리즘은 모두 그리디 알고리즘의 대표적인 사례이다.
- 다익스트라와 벨만-포드 알고리즘은 언제 구분하여 쓰는가?자료구조 · 알고리즘다익스트라=그리디, 벨만-포드=DP로 패러다임 구분이 두 알고리즘 차이를 설명한다
- 재귀 호출 대신 반복문을 써야 하는 순간은 언제인가?자료구조 · 알고리즘동적 계획법(DP)의 구현 방식인 메모이제이션과 재귀, 반복문의 관계를 다룬다.
- 최단 경로 알고리즘의 선택 기준은 무엇인가?자료구조 · 알고리즘
- GC 알고리즘 선택 기준은 무엇인가?언어 · 런타임