[백준 11055 / Python] 가장 큰 증가 부분 수열

KYUNG HWAN·2021년 8월 12일
0

Algorithm

목록 보기
4/18
post-thumbnail

https://www.acmicpc.net/problem/11055

이전 위치에 있는 값보다 큰 값만 계산한다는 조건하에 DP를 계산하면 된다.

코드

import copy

N = int(input())    # A의 크기 입력
A = list(map(int, input().split()))     # 수열 A 입력

# dp[i] : i까지 왔을 때 합의 최대
# A에 대한 값만 복사
dp = copy.deepcopy(A)

for i in range(1, N):
    for j in range(i):
        # 전 위치에 있는 값보다 클 때만 계산
        if A[i] > A[j]:
            dp[i] = max(A[i] + dp[j], dp[i])

print(max(dp))

결과

profile
내가 그린 기린 그림

0개의 댓글