-
코드
import sys def find(i): low, high = 1, len(stack)-1 while low < high: mid = (low+high)//2 if stack[mid] < i: low = mid +1 elif stack[mid] > i: high = mid else: low = high = mid return high if __name__ == '__main__': n = int(sys.stdin.readline()) li = list(map(int, sys.stdin.readline().split())) stack = [0] for i in li: if stack[-1] < i: stack.append(i) else: stack[find(i)] = i print(len(stack)-1)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1927번 최소 힙 (파이썬) (0) 2022.01.04 [백준] 11279번 최대 힙 (파이썬) (0) 2022.01.04 [백준] 2110번 공유기 설치 (파이썬) (0) 2022.01.02 [백준] 2805번 나무 자르기 (파이썬) (0) 2022.01.02 [백준] 1654번 랜선 자르기 (파이썬) (0) 2022.01.02