코딩테스트/BOJ

[백준] [DP] 17212. 달나라 토끼를 위한 구매대금 지불 도우미

박소민 2023. 5. 10. 13:25
17212. 달나라 토끼를 위한 구매대금 지불 도우미
 

17212번: 달나라 토끼를 위한 구매대금 지불 도우미

달나라 토끼들이 사용하는 화폐는 동전뿐이다. 동전의 종류는 1원, 2원, 5원, 7원 이렇게 4종류가 있다. 물건을 사고 동전으로 계산을 하는데 동전의 개수가 최소가 되도록 지불하지 않는 것은 

www.acmicpc.net

 

  • 내 풀이
    • 0일때 처리해줘야함
#1,2,5,7
# 동전개수 최소
n=int(input())

mlst=(1,2,5,7)
dp=[1 if i in mlst else int(1e9) for i in range(n+1)]
dp[0]=0
for m in mlst:
    for i in range(m,n+1):
        if i%m==0:
            dp[i]=min(dp[i],i//m)
        else:
            dp[i]=min(dp[i], dp[m]+dp[i-m])

print(dp[n])

 

  • 나눠질때 처리하면 조금 더 빠르긴 한데 없어도 가능
#1,2,5,7
# 동전개수 최소
n=int(input())

mlst=(1,2,5,7)
dp=[1 if i in mlst else int(1e9) for i in range(n+1)]
dp[0]=0
for m in mlst:
    for i in range(m,n+1):
        dp[i]=min(dp[i], dp[m]+dp[i-m])

print(dp[n])