728x90
반응형

# 틀린 코드.. 왜? 

n, k = map(int,input().split()) # n 개의 동전, k 원 

coin = [0]*n 

for i in range(n):
  coin[i] = int(input())

dp = [10001]*(k+1)
dp[0] = 1

for i in coin : 
  for j in range(i, k+1):
    if dp[j-i] != 10001 :

      if dp[j] == 10001 : 
        dp[j]= 0
      dp[j] += dp[j-i]

print(dp[k])

 

# 정답

n, k = map(int,input().split()) # n 개의 동전, k 원 

coin = [0]*n 

for i in range(n):
  coin[i] = int(input())

dp = [0]*(k+1)
dp[0]=1

for i in coin :
  for j in range(i, k+1):
    if j-i >= 0 : 
    # j-i 를 만드는 방법에 지금 coin 값을 더하는 식을 세울 수 있으므로. 
      dp[j] += dp[j-i]

print(dp[k])
728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 11055 가장 큰 증가 부분 수열  (0) 2020.09.14
# 1699 제곱수의 합 -  (0) 2020.09.13
# 11057 오르막 수  (0) 2020.09.13
# 1010 다리 놓기  (0) 2020.09.13
# 11052 카드 구매하기 -  (0) 2020.09.13

+ Recent posts