카테고리 없음

백준 11053 파이썬 풀이

minjiwoo 2021. 12. 26. 13:10
728x90

https://www.acmicpc.net/status?user_id=freemjstudio&problem_id=11053&from_mine=1 

 

채점 현황

 

www.acmicpc.net

 

dp 를 이용해서 풀어보았다. 

array[i] > array[j] and dp[i] < dp[j] 이면  dp[i] = dp[j]

이 코드를 통해서 자기 자신보다 작은 숫자들 중에서 dp에 저장된 배열이 가장 큰 값을 갱신하면서 가져오는것이다

저장된 값을 가져온다 !

# 11053 가장 긴 증가하는 부분 수열

n = int(input())
array = list(map(int, input().split()))

dp = [0]*n
for i in range(n):
    for j in range(i):
        if array[j] < array[i] and dp[i] < dp[j]:
            dp[i] += dp[j]



print(max(dp))
728x90