문제해결(PS)/백준(BOJ)

백준 9251 LCS

곰탱이장 2025. 1. 7. 15:05

https://www.acmicpc.net/problem/9251

 

 이 문제는 두 문자열의 가장 긴 공통서열을 구하는 문제이다. 

 

 이 문제는 전에 ROSALIND에서 풀어본적이 있으므로, https://jangbearbio.tistory.com/41 자세한 사항은 이 링크에 들어가여 참조하길 바란다.

 

import sys
input = sys.stdin.readline

A = ' '+input().rstrip()
B = ' '+input().rstrip()

lcs_map = [['' for _ in range(len(B))] for _ in range(len(A))]

for i in range(len(A)):
    for j in range(len(B)):
        if i==0 or j==0:
            continue
        elif A[i]==B[j]:
            lcs_map[i][j] = lcs_map[i-1][j-1] + A[i]
        else:
            lcs_map[i][j] = max([lcs_map[i-1][j],lcs_map[i][j-1]],key=len)

print(len(lcs_map[len(A)-1][len(B)-1]))

'문제해결(PS) > 백준(BOJ)' 카테고리의 다른 글

백준 12865 평범한 배낭  (0) 2025.01.08
백준 13549 숨바꼭질3  (0) 2025.01.08
백준 2096 내려가기  (0) 2025.01.07
백준 1916 최소비용 구하기  (0) 2025.01.05
백준 11660 구간 합 구하기 5  (2) 2025.01.02