그리디 알고리즘
- 현재 상황에서 지긤 당장 좋은 것만 고르는 방법
- 최소한의 아디디어를 떠올릴수 있는 능력을 요구한다.
- 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토 해야한다.
- 거스름돈 문제
일반적인 상황에서는 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다.
코딩테스트에서의 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서 이를 추론할 수 있어야 풀리도록 출제된다.
거스름돈 문제 코드
public class Main {
public static void main(String[] args) {
int n = 1260;
int cnt = 0;
int[] coinTypes = {500, 100, 50, 10};
for (int i = 0; i < 4; i++) {
int coin = coinTypes[i];
cnt += n / coin;
n %= coin;
}
System.out.println(cnt);
}
}
'코딩테스트 > [알고리즘] 알고리즘 정리' 카테고리의 다른 글
이진 탐색 알고리즘 (0) | 2021.10.07 |
---|---|
다이나믹 프로그래밍 (0) | 2021.10.05 |
백트래킹 알고리즘 (0) | 2021.10.03 |
그래프 탐색 알고리즘 - DFS / BFS (0) | 2021.10.02 |
최단 경로 알고리즘 (다익스트라, 벨만-포드, 플로이드-워셜) (0) | 2021.10.01 |