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

+ Recent posts