728x90
반응형

기본적인 다이나믹 프로그래밍 문제이다. li와 dp를 미리 선언하고 풀어야 런타임 에러가 안 나온다.

마지막 계단의 전 계단을 밟은 경우와, 밟지 않은 경우 2가지를 고려해서 풀면 된다.

N = int(input())
li = [0]*301
dp = [0]*301
for i in range(N):
    li[i] = int(input())
dp[0] = li[0]
dp[1] = li[0]+li[1]
dp[2] = max(li[0]+li[2], li[1]+li[2])
for i in range(3, N):
    dp[i] = max(dp[i-3]+li[i-1]+li[i], dp[i-2]+li[i])
print(dp[N-1])

 

728x90
반응형

+ Recent posts