https://www.acmicpc.net/problem/2156
clone
import sys
input = sys.stdin.readline
podo = [0]
n = int(input())
for _ in range(n):
podo.append(int(input()))
dp = [0] * 10001
dp[1] = podo[1]
if n >= 2:
dp[2] = podo[1] + podo[2]
if n >= 3:
for i in range(3, n+1):
dp[i] = max(dp[i-1], dp[i-2] + podo[i], dp[i-3]+podo[i-1]+podo[i])
print(dp[n])
n <= 2인 경우에 자칫하면(dp[2] 설정 부분)
IndexError
가 떠서 미리 dp print를 해주고exit(0)
를 설정했지만, 비정상 강제 종료라 그런지 시간이 더 오래 걸리는 것을 확인! 차라리 위의 코드처럼if문
걸어주는게 낫다
sys.stdin.readline의 중요성...
88ms로 단축!