본문 바로가기
PROGRAMING

[c언어/c++] Longest Increasing Sequence - LIS 동적계획법

by 프레브 2016. 12. 13.

어떤 정수 수열에서 0개 이상의 숫자를 지우면 이 수열의 부분 수열 (subsequence) 를 얻을 수 있다. 예를 들어 10 7 4 9 의 부분 수열에는 7 4 9, 10 4, 10 9 등이 있다. 단, 10 4 7 은 원래 수열의 순서와 다르므로 10 7 4 9 의 부분 수열이 아니다.


어떤 부분 수열이 순증가할 때 이 부분 수열을 증가 부분 수열 (increasing subsequence) 라고 한다. 주어진 수열의 증가 부분 수열 중 가장 긴 것의 길이를 계산하는 프로그램을 작성하라.


어떤 수열의 각 수가 이전의 수보다 클 때, 이 수열을 순증가 한다고 한다.


문제 링크 - https://algospot.com/judge/problem/read/LIS