코딩하는 해맑은 거북이

[Python] 거스름돈 - 프로그래머스 (DP) 본문

코딩테스트

[Python] 거스름돈 - 프로그래머스 (DP)

#CJE 2023. 1. 4.
해당 글은 프로그래머스 Level3 문제 '거스름돈'을 다룬다.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12907

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

설명

다이나믹 프로그래밍 알고리즘으로 풀 수 있는 문제이다.

거스름돈 금액을 동전의 숫자만큼 계속해서 누적해서 경우의 수를 구하고 n번째 dp값을 반환해주면 된다.

 

코드

def solution(n, money):
    dp = [0]*(n+1)
    dp[0] = 1
    
    for coin in money:
        for price in range(coin, n+1):
                dp[price] += dp[price-coin]

    return dp[n]%1000000007

     

 

 

Comments