그리드 알고리즘은 탐욕법이라고도 하며, 현재 상황에서 가장 좋은 것(현재 고를 수 있는 선택 중에서 가장 최적인 것)을 골라 최종 해답에 도달하는 것을 의미한다. 즉, 현재의 선택이 나중 선택에 미칠 영향을 고려하지 않는 것이다. 따라서, 일반적인 상황에서 그리드 알고리즘은 최적의 해를 보장할 수 없을 때가 많다.
하지만 코딩테스트에서는 대부분의 탐욕법 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 문제가 풀리도록 출제가 된다고 한다. 그렇기에 문제에서 가장 큰 혹은 가장 작은 순서대로와 같은 기준을 제시한다.
n = int(input("거스름돈을 입력사이오 : "))
coins = [500, 100, 50, 10]
answer = 0
for coin in coins:
answer += n // coin
n = n % coin
print(f"동전의 최소 갯수는 {answer}개 입니다.")
거스름돈을 입력사이오 : 1380
동전의 최소 갯수는 9개 입니다.
500원 2개, 100원 3개, 50원 1개, 10원 3개 사용하면 최소 갯수이다.