카드 구매하기(2)
- 이전 카드 구매하기 문제에서 최소값을 구하는 문제로 바뀐 것 뿐이다.
-
DP가 쉽지 않다는 걸 배울 수 있었다.
- 계산할 때마다 항상 초기에 있는 인덱스 0의 값을 건들이기에,
- min_val이란 변수를 통해 이 안에 최소값을 담은 뒤,
- 그 값을 넣어주는 방식을 변경하였다.
N = int(input())
p = [0] + list(map(int, input().split()))
d = [0]*(N+1)
for i in range(1, N+1):
min_val = 987654321
for j in range(1, i+1):
min_val = min(min_val, d[i-j]+p[j])
d[i] = min_val
print(d[N])