인프런 커뮤니티 질문&답변

푸푸님의 프로필 이미지
푸푸

작성한 질문수

IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)

동전문제 설명 - 점화식이 주어지지 않은 경우

f20 에서 f15 + 1은 이해가 됩니다...

해결된 질문

작성

·

240

0

다만, f15 에서 f10 +1 +1 / f12 +1 +1 은 이해가 되지 않습니다.

15원을 만들기 위해서는 10원을 만든 동전 개수에서 5원짜리 동전+1 만 하는게 맞지 않나요?

마찬가지로 f12도 12원을 만들기 위해서는 12원을 만든 동전개수에 3원짜리 +1만 하면 되는줄 알았지만 왜 f10 +1+1 / f12+1+1 인지 이해가 되지않습니다...

답변 1

1

조이스터디님의 프로필 이미지
조이스터디
지식공유자

안녕하세요 푸푸님.

주어진 문제에 따르면 3원, 5원짜리 동전이 존재합니다.

따라서, 20원을 지불하기 위해서는 15원을 지불한 뒤 5원을 추가로 사용하거나, 17원을 지불한 뒤 3원을 추가 지불하는 방법이 있습니다.

fn을 n원을 지불하기 위해 사용한 동전의 총 수라고 할 때, 위 내용을 수식으로 나타내면 아래와 같습니다.

f20 = min(f15+1, f17+1) ......(1)

 

여기서, f15와 f17은 base case가 아니기 때문에, 같은 방식으로 표현이 가능합니다.

f15 = min(f10+1, f12+1) ......(2)
f17 = min(f12+1, f14+1) ......(3)

 

여기서, 2를 1에 대입하면 아래와 같은 식이 나옵니다.

f20 = min( min(f10+1, f12+1)+1, f17+1)

 

말씀해주신 수식

f10+1+1, f12+1+1은 위와 같은 계산 과정에서 유도된 것으로 생각됩니다.

 

푸푸님이 만족하시는 답변이 되었기를 바라며, 답변 해결로 상태 변경을 부탁드립니다.

이후에도 문제를 풀거나 공부하시면서 어려운 점이 있다면 질문 올려주세요.

감사합니다.

푸푸님의 프로필 이미지
푸푸

작성한 질문수

질문하기