백준/다이나믹 프로그래밍
# 9252 LCS2
bright_code
2020. 9. 17. 10:49
728x90
반응형
a = input()
b = input()
la, lb = len(a), len(b)
dp = [ [0]*(lb+1) for _ in range(la+1) ]
lcs = [ ['']*(lb+1) for _ in range(la+1) ]
for i in range(1,la+1):
for j in range(1,lb+1):
if a[i-1] == b[j-1] :
dp[i][j] = 1+ dp[i-1][j-1]
lcs[i][j] = lcs[i-1][j-1] + b[j-1]
else :
if dp[i-1][j] > dp[i][j-1] : n,m = i-1, j
else : n, m = i, j-1
dp[i][j] = dp[n][m]
lcs[i][j] = lcs[n][m]
print(dp[i][j])
print(lcs[i][j])
print(dp[i][j])
print(lcs[i][j])
728x90
반응형