728x90
반응형
https://www.acmicpc.net/problem/12015
최종 코드
import sys
from bisect import bisect_left
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split()))
lis = []
for num in arr:
if len(lis) == 0: lis.append(num)
else:
loc = bisect_left(lis, num)
if loc >= len(lis):
lis.append(num)
else:
lis[loc] = num
print(len(lis))
풀이 과정
import sys
from bisect import bisect_left
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split()))
lis = []
for num in arr:
if len(lis) == 0: lis.append(num)
else:
loc = bisect_left(lis, num)
if loc >= len(lis):
lis.append(num)
else:
lis[loc] = num
print(len(lis))
#시간복잡도 = O(NlogN), 공간복잡도 = O(N)
728x90
반응형
'코테 노트 > 백준' 카테고리의 다른 글
백준 21609 상어 중학교 C++ (0) | 2021.10.14 |
---|---|
백준 20061 모노미노도미노 2 C++ (0) | 2021.10.14 |
백준 14002 가장 긴 증가하는 부분 수열 4 Python 3 (0) | 2021.10.06 |
백준 17825 주사위 윷놀이 C++ (0) | 2021.10.06 |
백준 7453 합이 0인 네 정수 Python 3 (0) | 2021.10.05 |