두 문자열을 입력받고 두 문자열의 최장 공통 부분 수열(LCS)을 출력하는 문제입니다.
import sys
A = "0"+sys.stdin.readline().rstrip()
B = "0"+sys.stdin.readline().rstrip()
dp = [[0 for _ in range(len(B))] for _ in range(len(A))]
lcs = 0
for a in range(1, len(A)):
for b in range(1, len(B)):
if A[a] == B[b]:
dp[a][b] = dp[a-1][b-1]+1
if lcs < dp[a][b]:
lcs = dp[a][b]
else:
dp[a][b] = max(dp[a-1][b], dp[a][b-1])
print(lcs)