[ 공 부 ]/[ 알 고 리 즘 ]

LCS(Longest Common Subsequence) 알고리즘

HiStar__ 2020. 7. 3. 19:49

LCS 알고리즘이란?

 

  • LCS 알고리즘이란,
    최장 공통 부분 수열(Longest Common Subsequence)과
    최장 공통 부분 문자열(Longest Common Substring)가
    존재한다.

  • 최장 공통 부분 수열
    ABCDEFG
    ABCGEDF
    -> ABCEF로 길이가 5.

  • 최장 공통 부분 문자열
    ABCDEFG
    ABCGEDF
    -> ABC로 길이가 3.

 

최장 공통 부분 문자열

 

STRING 1 : ABCDEFG
STRING 2 : ABCGEDF

조건문

if( j == 0 || i == 0 ) dp[i, j] = 0
if ( S1[i - 1] == S2[j - 1] )  dp[i, j] = dp[i - 1, j - 1] + 1
else dp[i, j] = max(dp[i - 1, j] , dp[i, j - 1])

 

 

출 처

Algoritms : https://algorithms.tutorialhorizon.com/dynamic-programming-longest-common-subsequence/