문제 주소: https://www.acmicpc.net/problem/11053
난이도: silver 2
아래가 핵심코드
for i in range(1,N): # 피벗 설정
for j in range(i): # 피벗 이전의 숫자들을 순회하면서
if numbers[j] < numbers[i]: # 피벗과 크기 비교
cache[i] = max(cache[i], cache[j]+1)
N = int(input())
numbers = list(map(int, input().split()))
cache = [1] * (N)
for i in range(1,N):
for j in range(i):
if numbers[j] < numbers[i]:
cache[i] = max(cache[i], cache[j]+1)
print(max(cache))