[BOJ]コイン1
使用するアルゴリズム/データ構造
これはコインの組み合わせ数を求める問題です.
硬貨の使用範囲が広がるにつれて、それぞれの金額を創出できれば、dpを積算して使用します.
外環のコインはコインごとに循環します.
最初のコイン->1,2コイン->1,2,3コインのみ使用...
上記の手順で使用するコインの種類を徐々に増やしていきます.
内輪の価格は総金額をコイン元からk元に巡回する.
前のコインで求めた数字を用いて、新しいコインをdp[price]に追加するために必要な数字を求める.
コード#コード#
from sys import stdin
input = stdin.readline
n, k = map(int, input().split())
coins = [int(input()) for _ in range(n)]
dp = [0 for _ in range(k+1)]
dp[0] = 1
for coin in coins:
for price in range(coin, k+1):
dp[price] += dp[price-coin]
print(dp[k])
Reference
この問題について([BOJ]コイン1), 我々は、より多くの情報をここで見つけました https://velog.io/@jadenkim5179/BOJ-코인1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol