최장공통부분수열이란 두 수열이 주어졌을 때, 두 수열 모두의 부분 수열이 되는 수열 중 가장 긴 것을 말하며, 주로 문자열 비교에서 많이 사용되는 기법이다.
예를 들어, ABCD와 ACDF라는 두 개의 문자열의 최장공통부분수열은 ACD이다.
최장공통부분수열을 찾는 가장 일반적인 방법은 동적계획법(Dynamic Programming)을 사용하는 것이다.
동적계획법을 활용하여 길이가 m과 n인 두 문자열의 최장공통부분수열을 구하는 경우 시간복잡도는 O(mn)으로 가장 효율적이다.
X와 Y이며 X의 길이를 m, Y의 길이를 n이라고 가정DP[m][n])을 생성DP[m-1][n-1]의 값이 최장공통부분수열의 길이