def solution(A,B):
result = [[0]*(len(B)+1) for _ in range(len(A)+1)]
for i in range(1,len(A)+1):
for j in range(1,len(B)+1):
if A[i-1] == B[j-1]:
result[i][j] = result[i-1][j-1] + 1
return max(map(max,result))
A = input()
B = input()
print(solution(A,B))
LCS 문제이다. 근데 이전에 풀었던 LCS와 다른 문제였다.
기본적인 틀은 똑같다. 대신 이 문제는 연속된 문자열이어야 하기 때문에, A[i-1] != B[i-1]일때는 아무것도 해주지 않는다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 2470 두 용액 (0) | 2021.02.20 |
---|---|
[BOJ/백준] 5719 거의 최단 경로 (0) | 2021.02.19 |
[BOJ/백준] 3020 개똥벌레 (0) | 2021.02.18 |
[BOJ/백준] 6593 상범 빌딩 (0) | 2021.02.17 |
[BOJ/백준] 11054 가장 긴 바이토닉 부분 수열 (0) | 2021.02.17 |