CS Study/CLRS (자료구조 | 알고리즘)
[CLRS] [15] Greedy Algorithm
23학번이수현
2024. 11. 27. 21:43
1. Greedy Algorithm?
- 매 순간 국소적인 최적해를 찾는 과정을 반복함으로써 전체 문제에 대한 해를 찾는 문제 해결의 한 패러다임
- Greedy Algorithm으로 얻은 해가 전체 문제에 대해 반드시 최적의 해라는것을 항상 보장 불가
2. Greedy Algorithm의 최적해를 가질 때
2.1. ex 1) 거스름 돈(각각의 동전들이 배수관계)
https://www.acmicpc.net/problem/11047
n, k = map(int,input().split())
cost = list(int(input()) for _ in range(n))
cnt = 0
for _ in range(n):
p = cost.pop()
cnt += k//p
k = k%p
print(cnt)
3. 결론
- Greedy Algorithms은 특정한 규칙이 있는게 아니고, 현시점에서 가장 중요한것부터 해결해 나가는 알고리즘이다.
- 가장 중요한것을 어떻게 잡냐에 따라 결과는 달라진다. 이를 많은 연습을 통해 직관을 키우는게 중요하다.