ν°μ€ν 리 λ·°
λ¬Έμ
λ¬Έμ νμ΄
μμ λ€λ£¬ λμ 1μ λμ μ ν©νμ¬ Kκ° λλ κ²½μ°μ μλ₯Ό μ°Ύλ λ¬Έμ μμ§λ§, μ΄ λ¬Έμ λ λμ μ ν©νμ¬ Kκ° λ λ, μ΅μμ λμ μ μ¬μ©νμ¬ Kκ° λλ κ²½μ°λ₯Ό λ°ννλ λ¬Έμ μ΄λ€.
μμ κ°μ΄ λμ μ κ°μΉμ λ°λΌ, μ¬μ©νμ¬μΌ λλ λμ μ κ°μλ₯Ό ꡬν μ μλ€. μμ λ€λ£¬ λμ 1μ λμ μ ν©μ΄ Kκ° λλ κ²½μ°μ μλ₯Ό μ°ΎκΈ° μν΄ κ²½μ°μ μλ€μ λμ νμλ€. μ΄μ λ¬λ¦¬ μ΄ λ¬Έμ μμλ μ΅μ΄μ κ°μ₯ μμ κ°μΉμ λμ μΌλ‘ κΈμ‘μ λνλΌ μ μλ λμ μ μλ₯Ό ꡬνκ³ , λ€μμ κ°μΉμ λν΄μλ, νμ¬ λ©λͺ¨μ΄μ μ΄μ λ κ°κ³Ό ν΄λΉ λμ μΌλ‘ λνλΌ μ μλ κ²½μ°λ₯Ό λΉκ΅νμ¬ μ΅μ κ°μ κΈ°λ‘ν΄λλ λ°©μμ μ¬μ©νλ€.
μλ₯Ό λ€μ΄, 2λ₯Ό 2μΈ λμ μΌλ‘λ 1κ°, 1μΈ λμ μΌλ‘λ 2κ°λ₯Ό μ¬μ©νμ¬μΌ νλ€. λ°λΌμ μμ κ°μΈ 1μ 2λ₯Ό λνλΌ μ μλ μ΅μ λμ μλ‘ κΈ°λ‘νλ€. λν λλ¨Έμ§ κΈμ‘λ€μ (10 - 2), (8 - 2), (6 - 2), (4 - 2)μ κ°μ΄ μ΄μ μ λ©λͺ¨μ΄μ μ΄μ λ κ°μ νμ©νμ¬ κ΅¬ν μ μλ€.
μ½λ
from sys import stdin
if __name__ == '__main__':
n, k = map(int, stdin.readline().split())
coins = [int(stdin.readline()) for _ in range(n)]
dp = [0] + [k + 1] * k
for coin in coins:
for price in range(coin, k + 1):
dp[price] = min(dp[price], dp[price - coin] + 1)
print(dp[k] if dp[k] != k + 1 else -1)
'π¨βπ» μ½λ©ν μ€νΈ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€: 1495 κΈ°ν리μ€νΈ (0) | 2020.08.27 |
---|---|
λ°±μ€: 11058 ν¬λ¦¬λ³΄λ (0) | 2020.08.26 |
λ°±μ€: 2293 λμ 1 (0) | 2020.08.26 |
λ°±μ€: 1890 μ ν (0) | 2020.08.25 |
λ°±μ€: 11048 μ΄λνκΈ° (0) | 2020.08.25 |