LSC 설명 블로그
LCS 코드 - https://www.acmicpc.net/problem/9251
astr = input()
bstr = input()
n = len(astr)
m = len(bstr)
LCS = [[0 for _ in range(m+1)] for _ in range(n+1)]
result = []
for i in range(1, n+1):
for j in range(1, m+1):
if astr[i-1] == bstr[j-1]:
LCS[i][j] = LCS[i-1][j-1] + 1
else:
LCS[i][j] = max(LCS[i][j-1], LCS[i-1][j])
cur = LCS[n][m]
r, c = n, m
while 1:
if cur == 0:
break
if cur == LCS[n-1][m]:
cur = LCS[n-1][m]
n -= 1
elif cur == LCS[n][m-1]:
cur = LCS[n][m-1]
m -= 1
else:
result.append(bstr[m-1])
cur = LCS[n-1][m-1]
n-=1
m-=1
print(len(result))
# for i in range(len(result)-1, -1 , -1):
# print(result[i], end='')
728x90
'코테 > 코딩테스트 대비 Python' 카테고리의 다른 글
백준 감시 (0) | 2023.11.15 |
---|---|
백준 가희와 은행 (0) | 2023.11.12 |
백준 스타트 택시 (0) | 2023.05.25 |
백준 마법사 상어와 파이어볼 Python (0) | 2023.05.22 |
백준 인구이동 BFS (1) | 2023.05.21 |