티스토리 뷰
DP 문제를 풀다가 만나게 된 친구입니다
BCD처럼 연속된 것만 찾는다면 최장 공통 문자열
BCDF, BCDE처럼 연속되지 않아도 된다면 최장 공통 부분 수열입니다
최장 공통 문자열의 점화식은 요렇고
if(i==0 || j==0) {
LCS[i][j] = 0;
} else if( A[i] == B[j]) {
LCS[i][j] = LCS[i-1][j-1] + 1;
} else {
LCS[i][j] = 0;
}
최장 공통 부분 수열의 점화식은 이렇습니다
if(i==0 || j==0) {
LCS[i][j] = 0;
} else if( A[i] == B[j]) {
LCS[i][j] = LCS[i-1][j-1] + 1;
} else {
LCS[i][j] = max(LCS[i-1][j], LCS[i][j-1]_;
}
둘의 차이는 꼭 연속되지 않음에서 비롯됩니다
[알고리즘] 그림으로 알아보는 LCS 알고리즘 - Longest Common Substring와 Longest Common Subsequence
LCS는 주로 최장 공통 부분수열(Longest Common Subsequence)을 말합니다만, 최장 공통 문자열(Longest Common Substring)을 말하기도 합니다.
velog.io
이 글 보시면 쉽게 이해할 수 있으실거에요!
'Algorithm' 카테고리의 다른 글
Algorithm) SWEA 3282 0 / 1 knapsack (0) | 2023.01.31 |
---|---|
Algorithm) SWEA 3304 최장 공통 부분 수열 (0) | 2023.01.31 |
Algorithm) SWEA 4006 고속도로 건설2 c++ (0) | 2023.01.30 |
Algorithm) SWEA 1251 하나로 c++ (0) | 2023.01.29 |
Algorithm) SWEA 1855 영준이의 진짜 BFS c++ (1) | 2023.01.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 입국심사
- 백준 20058
- Algorithm
- 코딩테스트
- programmers
- swea
- UIKit
- 8898
- 3000
- 문자열 교집합
- Xcode
- ios
- 단속카메라
- 마법사 상어와 파이어스톰
- 도둑질
- C++
- swift
- 3차원 농부
- 알고리즘
- programmres
- 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함