티스토리 뷰
https://www.acmicpc.net/problem/9251
9251번: LCS
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
www.acmicpc.net
s1 = list(input())
s2 = list(input())
s1_len = len(s1)
s2_len = len(s2)
dp = [[0] * (s2_len+1) for _ in range(s1_len + 1)]
for i in range(s1_len):
for j in range(s2_len):
if s1[i] == s2[j]:
dp[i+1][j+1] = dp[i][j] + 1
else:
dp[i+1][j+1] = max(dp[i+1][j], dp[i][j+1])
print(dp[s1_len][s2_len])
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 14891 : 톱니바퀴 - Python (0) | 2020.07.02 |
---|---|
[백준] 14500 : 테트로미노 - Python (0) | 2020.06.30 |
[백준] 15686 : 치킨 배달 - Python (1) | 2020.06.24 |
[백준] 14889 : 스타트와 링크 - Python (0) | 2020.06.24 |
[백준] 6064 : 카잉 달력 - Python (0) | 2020.04.25 |