백준 알고리즘 9251. LCS
2024. 3. 26. 21:16ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/9251
9251번: LCS
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
www.acmicpc.net
전체 코드
s_w = input()
s_h = input()
w = len(s_w)
h = len(s_h)
# (w+1) x (h+1) dp 테이블을 생성한다.
dp = [[0] * (w + 1) for _ in range(h + 1)]
for i in range(1, h + 1):
for j in range(1, w + 1):
# 문자열이 동일하면 좌, 상단 개수 + 1로 갱신한다.
if s_h[i - 1] == s_w[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
else:
# 문자열이 다르면 왼쪽, 위쪽 중 큰 값으로 갱신한다.
dp[i][j] = max(dp[i][j - 1], dp[i - 1][j])
print(dp[-1][-1])
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 12865. 평범한 배낭 (0) | 2024.03.27 |
---|---|
백준 알고리즘 1753. 최단경로 (0) | 2024.03.27 |
백준 알고리즘 19941. 햄버거 분배 (1) | 2024.03.25 |
백준 알고리즘 1916. 최소비용 구하기 (0) | 2024.03.25 |
백준 알고리즘. 11724 연결 요소의 개수 (0) | 2024.03.22 |