크기가 N인 정수로 이루어진 수열이 있다. 이 수열을 여러 개의 증가 부분수열로 나누는데, 수열의 한 원소는 반드시 한 개의 부분 수열에 속해야한다. 이 때, 필요한 증가 부분수열의 최소 개수를 구하는 프로그램을 작성하시오.
부분 수열(Subsequence)은 어떤 수열에서 순서를 유지하되, 그 중 일부 항만을 선택하여 만들 수 있는 수열이다. 예를 들어, [1,3,2,4]로 이루어진 수열이 있다면, [1,3,4], [1,2,4]등은 부분 수열이 될 수 있지만, [1,2,3]은 부분수열이 될 수 없다.
증가 부분수열(Increasing subsequence)이란, 부분수열 중에 수열의 원소가 오른쪽으로 갈 수록 증가하는 부분수열을 의미한다. 이 문제에서 수가 같은 경우 증가하지 않는 것으로 간주한다.
예를 들어, [3,1,2,5,3]은 [3,5], [1,2,3] 두 개의 증가 부분수열로 나눌 수 있고, 한 개의 증가 부분수열로 나눌 수 없으므로, 필요한 증가 부분수열의 최소 개수는 2개가 된다.