https://www.acmicpc.net/problem/2293
#Solution
result[10]은 결국 result[9] + result[8] + result[5]의 값이다. 피보나치 수열과 같은 점화식이며 다이나믹 프로그래밍으로 풀어야 시간을 줄일 수 있다.
n, k = map(int, input().split())
coin_list = []
for _ in range(n):
coin_list.append(int(input()))
result = [0 for _ in range(k+1)]
result[0] = 1
for i in coin_list:
for j in range(i, k + 1):
result[j] += result[j-i]
print(result[k])
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#131 백준 알고리즘 [1260] DFS와 BFS - 그래프 (0) | 2019.10.05 |
---|---|
#130 백준 파이썬 [2579] 계단 오르기 - 점화식 (0) | 2019.10.04 |
#128 백준 파이썬 [1149] - 점화식 (0) | 2019.10.02 |
#127 백준 파이썬 [9461] 파도반 수열 - 점화식 (0) | 2019.10.01 |
#126 백준 파이썬 [1912] 연속합 (1) | 2019.10.01 |