동전 교환
동전 교환
n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. (각각의 동전은 몇개라도 사용할 수 있다.)
이전의 제곱 수의 합 문제와 비슷하다. 모든 동전을 다 볼 수 밖에 없다.
d[n] = min(d[n], d[n - coins[i]] + 1)
d[0] = 0;
for (int i = 0; i < N; i++) {
for (int j = coins[i]; j <= K; j++) {
d[j] = Math.min(d[j], d[j - coins[i]] + 1);
}
}