ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฑฐ์Šค๋ฆ„๋ˆ

Finn์€ ํŽธ์˜์ ์—์„œ ์•ผ๊ฐ„ ์•„๋ฅด๋ฐ”์ดํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•ผ๊ฐ„์— ์†๋‹˜์ด ๋„ˆ๋ฌด ์—†์–ด ์‹ฌ์‹ฌํ•œ Finn์€ ์†๋‹˜๋“ค๊ป˜ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ n ์›์„ ์ค„ ๋•Œ ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์†๋‹˜๊ป˜ 5

programmers.co.kr

 

๋ฌธ์ œ ํ’€์ด

 ๊ฑฐ์Šฌ๋Ÿฌ ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ˆ N์ด ์žˆ๊ณ , ํ™”ํ ๋‹จ์œ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ๋ˆ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ด์ „์— ๋‹ค๋ฃฌ, ๋ฐฑ์ค€: 2293 ๋™์ „ 1 ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ์ด๋‹ค. `DP`๋ฅผ ํ†ตํ•ด ๊ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

def solution(n, money):
    dp = [1] + [0] * n

    for coin in money:
        for price in range(coin, n + 1):
            if price >= coin:
                dp[price] += dp[price - coin]
    
    return dp[n] % 1000000007

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€