N = int(input())
arr = list(map(int,input().split()))
LIS = [arr[0]]
for i in range(1,len(arr)):
if arr[i] > LIS[-1]:
LIS.append(arr[i])
else:
start = 0
end = len(LIS)
idx = len(LIS)-1
while start < end:
mid = (start+end)//2
if LIS[mid] >= arr[i]:
idx = min(idx,mid)
end = mid
else:
start = mid + 1
LIS[idx] = arr[i]
LIS_CNT = len(LIS)
print(LIS_CNT)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 12978 스크루지 민호 2 (0) | 2021.05.04 |
---|---|
[BOJ/백준] 12933 오리 (0) | 2021.05.04 |
[BOJ/백준] 11873 최대 직사각형 (0) | 2021.05.04 |
[BOJ/백준] 11055 가장 큰 증가 부분 수열 (0) | 2021.05.04 |
[BOJ/백준] 11501 주식 (0) | 2021.05.04 |