https://www.acmicpc.net/problem/1965
이 문제는 "가장 긴 증가하는 부분 수열2"문제와 똑같은 문제이다.
현재 인덱스 i보다 크면서 인덱스 i에 해당하는 숫자보다 큰 숫자를 찾아야하는 문제이다.
from bisect import bisect_left
n = int(input())
arr = list(map(int, input().split()))
dp = []
for i in range(len(arr)):
if not dp or dp[-1] < arr[i]:
dp.append(arr[i])
else:
dp[bisect_left(dp, arr[i])] = arr[i]
print(len(dp))
'알고리즘' 카테고리의 다른 글
파이썬) 듣보잡 (0) | 2023.12.06 |
---|---|
파이썬) 차집합 - BOJ (0) | 2023.12.06 |
파이썬) 파도반 수열 - BOJ (0) | 2023.12.04 |
파이썬) 계단 오르기 - BOJ (0) | 2023.12.04 |
파이썬) 문자열 교환 - BOJ (0) | 2023.12.03 |