최장 증가 부분 수열 (LIS, Longest Increasing Subsequence) 정의 주어진 수열에서 원소들의 순서를 유지하면서 증가하는 가장 긴 부분 수열을 찾는 알고리즘으로 별도로 정렬이 필요 없다. 위 그림은 주어진 배열에서의 증가하는 부분 수열을 나타낸 예시로 최장 증가 부분 수열(LIS)은 두 번째로 보이는 그림이다. 최장 증가 부분 수열 작동 원리 최장 증가 부분 수열을 찾기 위해서는 다이나믹 프로그래밍(dp)을 사용해야 된다. dp[i]는 i번째 수를 마지막 원소로 가지는 최장 증가 부분 수열의 길이다. i번째의 LIS 길이를 구하는 방법은 0부터 i-1번째까지의 값에서 i번째 수보다 값이 작고 dp값이 가장 큰 값의 +1이다. 위의 그림으로 예제를 보겠다. arr 배열에 첫 번째 ..