728x90
반응형
https://www.acmicpc.net/problem/9251
문제
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.
예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
입력
첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.
출력
첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.
코드
A = list(map(str, input()))
B = list(map(str, input()))
n = len(A)
m = len(B)
dp = [[0]*(m+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
if A[i-1] == B[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
print(dp[n][m])
728x90
반응형
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 2003번 : 수들의 합 2 (0) | 2023.07.25 |
---|---|
[백준] 1182번 : 부분수열의 합 (파이썬, Python) (0) | 2023.07.25 |
[백준] 12865번: 평범한 배낭 (파이썬, Python) (0) | 2023.07.16 |
[백준] 17266번 : 어두운 굴다리 (파이썬, Python 풀이) (1) | 2023.07.13 |
[백준] 9655 번 : 돌 게임 (파이썬, Python) (0) | 2023.07.13 |