https://www.acmicpc.net/problem/12015
12015번: 가장 긴 증가하는 부분 수열 2
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000)
www.acmicpc.net
LIS 알고리즘 정리
https://hhiyeon.tistory.com/167
[알고리즘] LIS(Longest Increasing Subsequence) 최장 증가 부분 수열
LIS 알고리즘 최장 증가 부분 수열 일반적으로 DP(동적 계획법)으로 푸는 알고리즘 임의의 수열이 주어질 때, 이 숭려에서 몇 개의 수들을 제거해서 부분 수열을 만든다. 이 때 부분수열들을 오름
hhiyeon.tistory.com
백준 풀이
#n = int(input())
#arr = list(map(int, input().split()))
n = 6
arr = [10, 20, 10, 30, 20, 50]
lis = [0]
for case in arr:
if lis[-1] < case:
lis.append(case)
else:
left = 0
right = len(lis)
while left < right:
# print(lis)
mid = (left+right)//2
if lis[mid] < case:
left = mid + 1
else:
right = mid
lis[right] = case
print(len(lis)-1)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1264번 모음의 개수 (0) | 2023.04.07 |
---|---|
[백준] 11053번 가장 긴 증가하는 부분수열 - dp, LIS (0) | 2022.09.14 |
[백준] 10815번 숫자카드 - 이분탐색 (0) | 2022.09.13 |
[백준] 14888번 연산자 끼워넣기 - dfs, 백트래킹 (0) | 2022.09.12 |
[백준] 14889번 스타트와 링크 - dfs, 백트래킹 (0) | 2022.09.12 |