import sys
n = int(sys.stdin.readline())
step = [0 for _ in range(n+1)]
score = [0 for _ in range(n+1)]
for i in range(1,n+1):
step[i] = int(sys.stdin.readline())
if n <= 2:
print(sum(step))
else:
score[1] = step[1]
score[2] = step[1] + step[2]
for i in range(3, n+1):
score[i] = max(score[i-3]+step[i-1]+step[i], score[i-2]+step[i])
print(score[n])
혼자해보다가 계속 실패했는데 다른 사람의 코드를 보니
계단이 3개일 때 값을 고정해두고 풀어서 계속 틀렸다.
오류나던 코드 수정
import sys
n = int(sys.stdin.readline())
step = [0 for _ in range(n+1)]
score = [0 for _ in range(n+1)]
for i in range(1,n+1):
step[i] = int(sys.stdin.readline())
if n > 2:
score[1] = step[1]
score[2] = score[1] + step[2]
for i in range(3, n+1):
c1 = score[i-2] + step[i]
c2 = score[i-3] + step[i-1] + step[i]
score[i] = max(c1, c2)
print(score[n])
else:
print(sum(step))