ex) 루트에서 출발하여 단말 노드까지 가는 경우, 거쳐가는 노드의 합이 가장 큰 경우는?
1) 완전탐색으로 풀이
2) 탐욕 알고리즘으로 풀이
ex) 거스름 돈 문제
문제: 카운터에 500원, 100원, 50원, 10원짜리 동전이 무수히 많이 존재할 때, 손님에게 6,480원을 거슬러 주어야 할 때, 동전 개수의 최솟값은?
해결 방법: 가장 큰 화폐 단위부터 거슬러주는 것 → 500원, 100원, 50원, 10원 순으로 거슬러 줌
[1단계] 500원으로 거슬러 주기 → 6480/500 = 12…480 → 12개
[2단계] 100원으로 거슬러 주기 → 480/100 = 4…80 → 4개
[3단계] 50원으로 거슬러 주기 → 80/50 = 1…30 → 1개
[4단계] 10원으로 거슬러 주기 → 30/10 = 3 → 3개
따라서, 총 12+4+1+3 = 20개
⇒ 화폐 단위가 배수 관계에 속하기 떄문에 그리디 알고리즘을 사용하여 최적의 해 찾을 수 있음
만약, 120원을 거슬러 주어야 할 때, 80원, 60원, 10원 동전이 있다면?
→ 따라서, 위의 문제는 그리디 알고리즘으로 최적의 해 찾을 수 없음