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 |