๋ฌธ์ ๋งํฌ
์ฝ๋ ์ ์ถ ๊ธฐ๋ก (๋ฉ๋ชจ๋ฆฌ ๋ฐ ์๊ฐ)
๋ฉ๋ชจ๋ฆฌ : 29028KB
์๊ฐ : 320ms
Code
import sys
input = sys.stdin.readline
def nj(k, coin, dp):
temp=[]
for i in coin:
if k >= i and dp[k-i] != -1:
temp.append(dp[k-i]+1)
if len(temp)>0:
return min(temp)
else:
return -1
n, k = map(int, input().split())
coin=[]
for i in range(n):
coin.append(int(input()))
coin.sort()
dp = [-1 for i in range(k + 1)]
for i in range(1, k+1):
if i in coin:
dp[i] = 1
else:
dp[i] = nj(i, coin, dp)
print(int(dp[k]))
Python
๋ณต์ฌ
๋ฉ๋ชจ
<ํธ๋ ์์>
1) coin ๋ฐฐ์ด์ ์์ == dp ์ ์ธ๋ฑ์ค ์ธ ๋ถ๋ถ์ ํญ์ 1๊ฐ์ด๋ฏ๋ก dp[x] = 1
2) coin ๋ฐฐ์ด์ ์์ != dp ์ ์ธ๋ฑ์ค ์ธ ๋ถ๋ถ์ dp[x-coin์ ์์๋ค]+1 ์ ์ต์๊ฐ์ ๋ฃ๋๋ค
<python : ์ ์ ๋๊ฐ ์ ๋ ฅ๋ฐ๊ธฐ>
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
Python
๋ณต์ฌ
<python : ํฌ๊ธฐ n ๋ฐฐ์ด ์ ๋ ฅ๋ฐ๊ธฐ>
import sys
input = sys.stdin.readline
arr=[]
for i in range(n):
arr.append(int(input()))
Python
๋ณต์ฌ
<python : ๋ฐฐ์ด ์ค๋ฆ์ฐจ์/๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ธฐ>
arr.sort() #์ค๋ฆ์ฐจ์
arr.reverse() #๋ด๋ฆผ์ฐจ์
Python
๋ณต์ฌ