import sys
wine = [0]*10010
dp = [0]*10010
n = int(sys.stdin.readline())
for i in range(1,n+1):
wine[i] = int(sys.stdin.readline())
dp[1] = wine[1]
if n == 1:
print(dp[1])
else:
dp[2] = wine[2]+wine[1]
if n == 2:
print(dp[2])
else:
for i in range(3,n+1):
result = max(wine[i]+dp[i-2],dp[i-1],wine[i]+wine[i-1]+dp[i-3])
dp[i] = result
print(dp[n])
dp문제는 문제 풀이 방법을 생각하고 이를 점화식으로 표현하는 것이 중요합니다. hongcheol님은 가능한 경우의 수를 모두 생각하고 이를 점화식으로 깔끔하게 옮겨 코드를 작성했기 때문에 베스트 풀이로 선정했습니다. 그리고 dp를 풀 때 "dp풀이는 어떤 식으로 시작하면 되겠다"라는 자신만의 깨달음을 얻으셨기 때문입니다.
문제에 대한 분석을 정확하게 하고 코드로 옮겨야 실수가 발생하지 않는다고 생각하게 되었습니다.