[白俊2294]コイン2
6514 ワード
https://www.acmicpc.net/problem/2294
🥚質問する
dp[x]=x円を作るための硬貨の最小個数 ・
運転時エラー: 最初にdpを[0]*(k+1)に初期化して発生したエラー.与えられたコインの価値が100000以下の自然数は、リストのサイズを100000以上の範囲に初期化すれば解決できます.
🥚質問する
🥚入力/出力
🍳コード#コード# import sys
input = sys.stdin.readline
n, k = map(int, input().split())
coins = []
for _ in range(n):
coins.append(int(input().strip()))
# dp -1로 초기화
# dp[x] = x원을 만들기 위해 사용한 동전의 최소 개수
dp = [-1]*(1000001)
dp[0] = 0
for coin in coins:
# 가치가 같은 동전이 여러 번 주어질 수 있다.
# 이미 dp[coin] = 1 이라면 그냥 스킵
if dp[coin] == -1:
dp[coin] = 1
for i in range(1, k+1):
if dp[i] != -1:
continue
tmp = []
for coin in coins:
if i - coin >= 0 and dp[i-coin] != -1:
tmp.append(dp[coin] + dp[i-coin])
if len(tmp) <= 0:
continue
dp[i] = min(tmp)
print(dp[k])
🧂アイデア
DP
🍳コード#コード# import sys
input = sys.stdin.readline
n, k = map(int, input().split())
coins = []
for _ in range(n):
coins.append(int(input().strip()))
# dp -1로 초기화
# dp[x] = x원을 만들기 위해 사용한 동전의 최소 개수
dp = [-1]*(1000001)
dp[0] = 0
for coin in coins:
# 가치가 같은 동전이 여러 번 주어질 수 있다.
# 이미 dp[coin] = 1 이라면 그냥 스킵
if dp[coin] == -1:
dp[coin] = 1
for i in range(1, k+1):
if dp[i] != -1:
continue
tmp = []
for coin in coins:
if i - coin >= 0 and dp[i-coin] != -1:
tmp.append(dp[coin] + dp[i-coin])
if len(tmp) <= 0:
continue
dp[i] = min(tmp)
print(dp[k])
🧂アイデア
DP
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
coins = []
for _ in range(n):
coins.append(int(input().strip()))
# dp -1로 초기화
# dp[x] = x원을 만들기 위해 사용한 동전의 최소 개수
dp = [-1]*(1000001)
dp[0] = 0
for coin in coins:
# 가치가 같은 동전이 여러 번 주어질 수 있다.
# 이미 dp[coin] = 1 이라면 그냥 스킵
if dp[coin] == -1:
dp[coin] = 1
for i in range(1, k+1):
if dp[i] != -1:
continue
tmp = []
for coin in coins:
if i - coin >= 0 and dp[i-coin] != -1:
tmp.append(dp[coin] + dp[i-coin])
if len(tmp) <= 0:
continue
dp[i] = min(tmp)
print(dp[k])
DP
dp[0] = 0
、入力中の硬貨はdp[coin] = 1
に初期化され、残りは-1に初期化される.i - coin >= 0
・dp[i-coin] != -1
の場合dp[i] = dp[coin] + dp[i-coin] (1 + dp[i-coin])
の最小値🧐
Reference
この問題について([白俊2294]コイン2), 我々は、より多くの情報をここで見つけました https://velog.io/@eastgloss0330/백준-2294-동전-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol