https://www.acmicpc.net/problem/12015
LIS 알고리즘 정리
https://hhiyeon.tistory.com/167
백준 풀이
#n = int(input())
#arr = list(map(int, input().split()))
n = 6
arr = [10, 20, 10, 30, 20, 50]
lis = [0]
for case in arr:
if lis[-1] < case:
lis.append(case)
else:
left = 0
right = len(lis)
while left < right:
# print(lis)
mid = (left+right)//2
if lis[mid] < case:
left = mid + 1
else:
right = mid
lis[right] = case
print(len(lis)-1)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1264번 모음의 개수 (0) | 2023.04.07 |
---|---|
[백준] 11053번 가장 긴 증가하는 부분수열 - dp, LIS (0) | 2022.09.14 |
[백준] 10815번 숫자카드 - 이분탐색 (0) | 2022.09.13 |
[백준] 14888번 연산자 끼워넣기 - dfs, 백트래킹 (0) | 2022.09.12 |
[백준] 14889번 스타트와 링크 - dfs, 백트래킹 (0) | 2022.09.12 |