1. coin벡터엔 동전의 가치(오름차순) vcnt벡터엔 동전의 최소개수를 저장했습니다. 예를들어 vcnt[3][5]은 3번째 동전까지 포함해 합 5를 만들 수 있는 최소 동전의 개수입니다.
2. 최소를 구하는 방법은, vcnt[3][5]를 구한다 했을 때, 1> 동전의 가치가 목표합보다 클 시 vcnt[2][5]에서 가져옵니다 2> 아니라면, 3번째 동전으로 만들 수 있는 경우의 수가 없다면 역시 vcnt[2][5]에서 가져오며 3> 아니라면, 3번째 동전으로 만들 수 있는 모든 경우의 수, 각각 동전의 개수와 vcnt[2][5]를 비교하여 최소값을 받습니다.
piy0605 5년 전
먼저 코드가 지저분한 점 죄송합니다.
질문에 있는 모든 반례를 해보았으나 발견을 못했습니다.
1. coin벡터엔 동전의 가치(오름차순)
vcnt벡터엔 동전의 최소개수를 저장했습니다.
예를들어 vcnt[3][5]은 3번째 동전까지 포함해
합 5를 만들 수 있는 최소 동전의 개수입니다.
2. 최소를 구하는 방법은,
vcnt[3][5]를 구한다 했을 때,
1> 동전의 가치가 목표합보다 클 시
vcnt[2][5]에서 가져옵니다
2> 아니라면, 3번째 동전으로 만들 수 있는 경우의 수가 없다면 역시 vcnt[2][5]에서 가져오며
3> 아니라면, 3번째 동전으로 만들 수 있는 모든 경우의 수, 각각 동전의 개수와 vcnt[2][5]를 비교하여
최소값을 받습니다.
지적 부탁드립니다!