상상쓰

[백준] 동전 1 본문

Coding Test

[백준] 동전 1

상상쓰 2021. 11. 18. 17:17

https://www.acmicpc.net/problem/2293

 

2293번: 동전 1

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

dp[k] = k원을 만들 수 있는 경우의 수

n번 돌 때마다 dp 배열은 갱신된다. (n번째는 n개의 수를 가지고 k원을 만들 수 있는 경우의 수) 

 

import sys

n, k = map(int, sys.stdin.readline().split())
dp = [0] * (k+1)
dp[0] = 1

for i in range(1, n+1):
    m = int(sys.stdin.readline())
    
    for j in range(k+1):
        if j - m >= 0:   
            dp[j] += dp[j-m]
        
print(dp[-1])

'Coding Test' 카테고리의 다른 글

[프로그래머스] 신고 결과 받기  (0) 2022.01.19
[백준] Fly me to the Alpha Centauri  (2) 2022.01.14
[백준] 1, 2, 3 더하기 4  (0) 2021.11.12
[백준] 줄 세우기  (0) 2021.11.10
[백준] 최소비용 구하기  (0) 2021.11.09
Comments