728x90
n = int(input())
arr = list(map(int,input().split()))
dp = [0]*n
dp[0]=arr[0]
dp[1]=max(arr[0],arr[1])
for j in range(2,n):
dp[j]=max(dp[j-2]+arr[j],dp[j-1])
print(dp)
print(max(dp[n-1],dp[n-2]))
728x90
'알고리즘 문제 풀이 > DP' 카테고리의 다른 글
[백준]11053번: 가장 긴 증가하는 부분 수열 / 11722번: 가장 긴 감소하는 부분 수열 (0) | 2023.02.26 |
---|---|
[이코테] 금광 (0) | 2023.02.26 |
[백준]1520번: 내리막 길 (0) | 2023.02.17 |
[백준]1890번: 점프 (0) | 2023.02.14 |
[백준]11048번: 이동하기 (0) | 2023.02.12 |