어떤 정수 수열에서 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
'PROGRAMING' 카테고리의 다른 글
[c언어/c++] 타일링 2 - TILING 2 동적계획법 (0) | 2016.12.13 |
---|---|
[c언어/c++] JLIS - 합친 LIS 동적계획법 (0) | 2016.12.13 |
[c언어/c++] 삼각형 위의 최대 경로 TRIANGLEPATH 동적계획법 (0) | 2016.12.13 |
[c언어/c++] 외발뛰기 JUMPGAME - 동적계획법 (0) | 2016.12.13 |
[c언어/c++] 울타리 잘라내기 - FENCE 분할정복 (0) | 2016.12.13 |