문제 링크
이 블로그가 설명을 잘해둔 것 같다. 블로그 그림 참고하기.
📌 다이나믹 프로그래밍
n = int(input()) a = list(map(int, input().split())) dp = [1 for _ in range(n)] for i in range(1, n): for j in range(i): if a[i] > a[j]: dp[i] = max(dp[i], dp[j] + 1) print(max(dp))