백준 12015 - 가장 긴 증가하는 부분 수열 2 (파이썬)

Updated:

Answer

import sys

n = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
b = [0]

for i in a:
    if b[-1] < i:
        b.append(i)
    else:
        s = 0
        e = len(b)

        while s < e:
            m = (s + e) // 2

            if b[m] < i:
                s = m + 1
            else:
                e = m

        b[e] = i

print(len(b) - 1)

Categories:

Updated: