BOJ - 11055

주의·2024년 1월 31일
0

boj

목록 보기
159/214

백준 문제 링크
가장 큰 증가하는 부분 수열

❓접근법

  1. 수열을 data로 받아주고, DP도 똑같이 만들어준다.
  2. 조건은 다음과 같다.
  • 현재 인덱스 이전의 인덱스를 다 살펴보는데,
    현재 인덱스 값 > 이전 인덱스 값이면
    DP[i] = max(DP[i], data[i] + DP[j])로 변환한다.
    -> 현재 값 = max(현재 값, 현재 값 + 이전 값)
  1. max(DP)를 출력하면 끝!

👌🏻코드

N = int(input())

data = list(map(int, input().split()))

DP = [i for i in data]

for i in range(1, N):
    
    for j in range(i):
        if data[i] > data[j]:
            DP[i] = max(DP[i], data[i] + DP[j])
            
print(max(DP))

0개의 댓글