728x90
반응형
문제 해결
- 가장 길게 오름차순 수열을 만들수 있는 LIS (Longest Increasing Subsequence) 문제
- 원소 하나씩 살펴보면서 가장 최근 이은 값도가 크면 하나 더해주고 작은 값이 나오면 이분탐색 통해 이전 값들에서 하나에 예약 연결한다 생각하고 value값을 바꿔놔도 문제 없다
CODE
import sys
input = sys.stdin.readline
from bisect import bisect_left
if __name__ == "__main__":
n = int(input())
A = list(map(int, input().split()))
link = []
for d in A:
if not link or link[-1] < d:
link.append(d)
else:
link[bisect_left(link,d)] = d
print(len(link))
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 2641 다각형그리기 (0) | 2025.01.27 |
---|---|
[python] 백준 11400 단절선 (0) | 2024.07.07 |
[python] 백준 11266 단절점 (0) | 2024.07.06 |
[python] 백준 16287 Parcel (0) | 2024.06.22 |
[python] 백준 20149 선분 교차 3 (0) | 2024.06.16 |
댓글