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
반응형
'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글
# 1904 01타일 (0) | 2020.09.17 |
---|---|
# 13301 타일 장식물 (0) | 2020.09.17 |
# 9251 LCS ( 개념 ) (0) | 2020.09.17 |
# 11048 이동하기 (0) | 2020.09.15 |
# 9625 BABBA (0) | 2020.09.15 |