본문 바로가기
Problem Solving/BOJ

[DP] python 2293 동전1

by Bokoo14 2023. 1. 28.

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

 

2293번: 동전 1

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

www.acmicpc.net

# 2023.01.28
import sys
input = sys.stdin.readline

n, k = map(int, input().split()) # n가지 종류,가치의 합 k원
value = [int(input()) for _ in range(n)]

dp=[0]*(k+1) # dp의 index: 가치의 합, value: 경우의 수
dp[0]=1 # 가치의 합이 0: 동전을 하나도 쓰지 않는 경우
for v in value:
    for index in range(1, k+1):
        if index>=v: # (해당하는 가치의 합-가치)>=0 : 이전의 가치의 합을 더해주면 됨
            dp[index]+=dp[index-v]
print(dp[k])

'Problem Solving > BOJ' 카테고리의 다른 글

[Recursion] 11057 오르막수  (0) 2023.01.29
[DP] python 10844 쉬운 계단  (0) 2023.01.29
[BFS] python 2573 빙산  (0) 2023.01.28
[BFS] 9205 맥주 마시면서 걸어가기  (0) 2023.01.27
[BFS] python 14503 로봇 청소기  (1) 2023.01.26