728x90

< 기존 풀이 >

동적 풀이법에 대한 개념이 없어 전혀 이해하지 못했다.

 

< 해결 방법 >

얼추 비슷하게는 작성 하였으나 dp[i] 를 구하는 과정에서 실수가 있었다. 해결을 하기는 했지만 주의해야 할 것 같다.

 

import sys
 
a = int(input())
 
k = [ ]
dp = [0]*a
 
for i in range(0,a):
    k.append(int(sys.stdin.readline()))
 
if len(k)==1:
    print(k[0])
elif len(k)==2:
    print(sum(k))
else:        
 
    dp[0]=k[0]
    dp[1]=k[0]+k[1]
    dp[2]=max(k[1]+k[2],k[0]+k[2])
 
 
    for i in range(3,len(dp)):
        dp[i]=max(dp[i-3]+k[i-1]+k[i],dp[i-2]+k[i])
 
    print(dp[-1])
 
728x90

+ Recent posts