티스토리 뷰

풀이

data 10 20 10 30 20 50
dp 1 2 1 3 2 4

dp 문제입니다. data 변수에는 입력값을, dp 변수에는 현재 위치에서 최대 길이를 저장합니다.

dp변수는 기본적으로 자신의 길이 1을 가지므로 1로 초기화 해줍니다.

 

dp 변수에는 현재 데이터보다 값이 작은 이전 데이터들 중에서 최대 dp값에 1을 더하여 저장합니다.

출력 시에는 dp의 마지막 원소가 최댓값이라는 보장이 없기 때문에 dp에서 최댓값을 뽑아 출력합니다.

 

Python3 Code 

import sys 

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

dp = [1] * n

for i in range(1, n):
    max_dp = 0

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

'Computer Science > Algorithm' 카테고리의 다른 글

[BOJ] 2193 - 이친수  (0) 2020.06.14
[BOJ] 2156 - 포도주 시식  (0) 2020.06.14
[BOJ] 1463 - 1로 만들기  (0) 2020.06.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함