-문제: https://www.acmicpc.net/problem/11055

이전에 풀었던 가장 긴 증가하는 부분 수열의 변형 문제다. 

처음에는 그대로 풀었다가 긴 수열을 구성하는 숫자의 합이라는 것을 알고 

+=1 대신 +=data[i]을 했더니 정답이 떴다 

-정답풀이 

n=int(input())
data=list(map(int,input().split()))
dp=[0]*n

for i in range(n):
    for j in range(i+1):
        if data[i]>data[j] and dp[i]<dp[j]:
            dp[i]=dp[j]            
    dp[i]+=data[i]
    
print(max(dp))

+ Recent posts