* 재채점 후 정답 아님. 다시 풀어야 함.


N = int(input())
stair_score = [int(input()) for _ in range(N)]
dp = []

# init : for-loop에서 전칸 + 전전칸(i-3)의 경우를 생각하게 되므로
# 총 3개의 init값을 저장해 두어야 한다. 
# 1 : 첫 칸
# 2 : 첫 칸 + 다음 칸
# 3 : max(시작 위치 + 1칸 + 2칸의 경우, 2칸 + 한칸의 경우)
dp.append(stair_score[0])
dp.append(dp[0] + stair_score[1])
dp.append(max(dp[0] + stair_score[2], stair_score[1] + stair_score[2]))

for i in range(3, N):
    # 1 : 현재 위치에서 전칸을 밟아 올라온 경우 + 전전칸을 밟은 경우의 최댓값
    # 2 : 현재 위치 + 전전칸에서 올라온 경우
    dp.append(max(stair_score[i] + stair_score[i - 1] + dp[i - 3], stair_score[i] + dp[i - 2]))
print(dp[-1])

'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글

백준 10989번(python)  (0) 2019.08.10
백준 1463번(python)  (0) 2019.08.10
백준 1932번(python)  (0) 2019.08.05
백준 1149번(python)  (0) 2019.08.05
백준 9461번(python)  (0) 2019.08.01