https://www.acmicpc.net/problem/5582
LCS에서 연속성만 부여하면 된다.
같을때 대각선 위값을 계승. 틀릴때 그냥 0
import sys
input = sys.stdin.readline
str1, str2 = (input().rstrip() for _ in range(2))
n, m = len(str1), len(str2)
dp = [[0]*(m+1) for _ in range(n+1)]
max_v = 0
for i in range(1,n+1):
for j in range(1,m+1):
if str1[i-1] == str2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
if dp[i][j] > max_v:
max_v = dp[i][j]
print(max_v)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 17073 나무 위의 빗물 (0) | 2021.09.17 |
---|---|
[백준][Python] 16435 스네이크 버드 : 구현 (0) | 2021.09.17 |
[백준][Python] 16208 귀찮음 (0) | 2021.09.16 |
[백준][Python] 16236 아기상어 (0) | 2021.09.16 |
[백준][Python] 2058 원자와 에너지 (0) | 2021.09.15 |