N = int(input())
sequence = list(map(int, input().split()))
# dp[i] : i번째에서 가장 긴 부분 수열
dp = [0] * N
# 모든 수를 따짐
for i in range(0, N):
min_value = 0
for j in range(i):
# 현재 수가 더 큰 경우는 작은 수의 경우의 수에다가 + 1을 해준다.
if(sequence[i] > sequence[j]):
min_value = max(min_value, dp[j])
dp[i] = min_value + 1
print(max(dp))
'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글
백준 2565번(python) (0) | 2019.08.19 |
---|---|
백준 11054번(python) (0) | 2019.08.18 |
백준 2156번(python) (0) | 2019.08.16 |
백준 10844번(python) (0) | 2019.08.16 |
백준 10989번(python) (0) | 2019.08.10 |