n=int(input())
arr=[0]
for _ in range(n):
arr.append(int(input()))
dp=[0,arr[1],arr[1]+arr[2]]
for i in range(3,n+1):
s=max(dp[i-1],dp[i-3]+arr[i-1]+arr[i],dp[i-2]+arr[i])
dp.append(s)
print(dp[n])
런타임에러라는 결과가 도출되었다.
https://www.acmicpc.net/board/view/81147 를 참고해 수정하였다.
n=int(input())
arr=[0]
for _ in range(n):
arr.append(int(input()))
dp=[0,arr[1]]
if n>1:#n이 1이면 arr[1]+arr[2]는 존재x
dp.append(arr[1]+arr[2])
for i in range(3,n+1):
s=max(dp[i-1],dp[i-3]+arr[i-1]+arr[i],dp[i-2]+arr[i])
dp.append(s)
print(dp[n])