1. 탐욕 알고리즘(Greedy Algorithm)
- 선택의 순간마다 당장 눈 앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법
- 탐욕 알고리즘은 최적해를 구하는데 사용되는 근사적인 방법
- 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달
▶그 순간에서 가장 좋은 것을 고르는 행위가 그 문제의 모든 경우의 수에서 발생하는 최적의 해라는 것을 담보하지 않음
▶ 탐욕 알고리즘을 적용 할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제이다
1-1. 탐욕 알고리즘 문제를 해결하는 방법
- 선택 절차 : 현재 상태에서의 최적의 해답을 선택
- 적절성 검사 : 선택된 해가 문제의 조건을 만족하는지 검사
- 해답 검사 : 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정 반복
1-2. 문제를 탐욕 알고리즘으로 풀기 위한 조건
- 탐욕적 선택 조건 : 앞의 선택이 이후의 선택에 영향을 주지 않음
- 최적 부분 구조 조건 : 문제에 대한 최적해가 부분문제애 대해서도 역시 최적해
관련 문제
백준 11047번
https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
더보기
참고)
[알고리즘] 탐욕 알고리즘(Greedy Algorithm) - 하나몬
❗️탐욕 알고리즘(Greedy Algorithm)이란? Greedy는 ‘탐욕스러운, 욕심 많은’ 이란 뜻이다. 탐욕 알고리즘은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에
hanamon.kr
그리디 알고리즘(탐욕법)
알고리즘을 공부하는 데 있어서 우선적으로 공부해야 하는 알고리즘이 있다면 세 가지가 있다고 한다. 그리디 알고리즘 탐색 알고리즘 DP ( 동적계획법) 이 세 가지인데 그중에서 그리디 알고리
chongmin-k.tistory.com
'CS지식 > 알고리즘' 카테고리의 다른 글
[CS지식 - 알고리즘]퀵정렬 (0) | 2023.01.25 |
---|---|
[CS지식 - 알고리즘]삽입정렬 (0) | 2023.01.23 |
[CS 지식 - 알고리즘] 선택정렬 (0) | 2023.01.20 |
[CS 지식 - 알고리즘]버블정렬(거품정렬) (0) | 2023.01.20 |
[CS 지식 - 알고리즘] DFS와 BFS (0) | 2023.01.19 |