최종 제출 코드
N = int(input())
p = [0] + list(map(int,input().split()))
dp = [0 for _ in range(N+1)]
for i in range(1,N+1):
for k in range(1,i+1):
dp[i] = max(dp[i], dp[i-k] + p[k])
print(dp[i])
◼ 최대값을 찾기 위해서는 카드팩을 구성하는 숫자의 조합을 모두 고려해야 한다.
1+1+1+1+1, 1+1+1+2, 1+1+3, 1+2+2, 1+4, 2+3, 5의 경우를 모두 고려해야 한다.dp[i]에는 카드를 i개 살 때의 최적값이 담겨있다.