[알고리즘] 그리디(탐욕)
[알고리즘] 그리디(탐욕)
그리디(탐욕)
- 각 단계에서 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘
- 항상 최적의 값을 보장하는것이 아니라 최적의 값의 ‘근사한 값’을 목표로
- 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론
- 단기적인 목표를 중심으로 한 전략적인 접근 방법
그리디 알고리즘의 성립 조건
- 탐욕 선택 속성
- 각 단계에서 ‘최선의 선택’을 했을 때 전체 문제에 대한 최적해를 구할 수 있는 경우
- 최적 부분 구조
- 전체 문제의 최적해가 ‘부분 문제의 최적해로 구성’될 수 있는 경우
그리디 알고리즘의 단계
- 문제의 최적해 구조를 결정
- 문제의 구조에 맞게 선택 절차를 정의
- 선택 절차에 따라 선택을 수행
- 선택된 해가 문제의 조건을 만족하는지 검사
- 조건을 만족하지 않으면 해당 해를 제외
- 모든 선택이 완료되면 해답을 검사
- 조건을 만족하지 않으면 해답으로 인정되지 않음
시간 복잡도
- for문으로 전체 탐색하는 경우: O(N)
자료 구조
- 구현에 따라 다름
This post is licensed under CC BY 4.0 by the author.