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 리스트를 이용해 값 비교를 해준다.
'Algorithm > Problems' 카테고리의 다른 글
99클럽 코테 스터디 29일차 TIL + DP (0) | 2024.11.25 |
---|---|
99클럽 코테 스터디 28일차 TIL + DP (0) | 2024.11.25 |
99클럽 코테 스터디 26일차 TIL + 수학 (0) | 2024.11.23 |
99클럽 코테 스터디 25일차 TIL + 완전탐색 (0) | 2024.11.22 |
99클럽 코테 스터디 24일차 TIL + 완전탐색 (0) | 2024.11.21 |