Algorithm/Problems

99클럽 코테 스터디 27일차 TIL + DP

공부좀하시졍 2024. 11. 24. 00:33

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

import sys
input = sys.stdin.readline

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

dp = [1 for _ in range(n)]

for i in range(n):
    for j in range(i):
        if A[i] < A[j]:
            dp[i] = max(dp[i], dp[j]+1)

print(max(dp))
  • 자신의 앞까지 값을 비교하며 앖에서 비교했던 값중 가장 큰값 과 현재 자신의 값 + 1 중 더 큰 값을 초기화한다.
  • 이전까지 구했던 값은 다시 구하지 않고 dp 리스트를 이용해 값 비교를 해준다.