-
[백준] 12738 - 가장 긴 증가하는 부분 수열 3 (파이썬)알고리즘/백준 2021. 9. 23. 16:26
n = int(input()) array = list(map(int,input().split())) def binary_search(start,end,target): if start>end: return start mid = (start+end)//2 if total[mid] > target: return binary_search(start,mid-1,target) elif total[mid] == target: return mid else: return binary_search(mid+1,end,target) total = [array[0]] for i in range(1,len(array)): if total[-1] < array[i]: total.append(array[i]) else: total[binary_search(0,len(total)-1,array[i])] = array[i] print(len(total))
이분탐색 알고리즘 참고
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 12904 - A와 B (파이썬) (0) 2021.09.23 [백준] 12869 - 뮤탈리스크 (파이썬) (0) 2021.09.23 [백준] 11659 - 구간 합 구하기 4 (파이썬) (0) 2021.09.23 [백준] 11066 - 파일 합치기 (파이썬) (0) 2021.09.23 [백준] 11058 - 크리보드 (파이썬) (0) 2021.09.23