1. LCS 알고리즘이란?
- LCS = 최장 공통부분 문자열
- Substring : 연속된 부분 문자열
ex. x = 'CCAYCKP'
y = 'CCAPCAK'
- Subsequence : 연속되지 않은 부분 문자열
ex. x = 'ACAYKP'
y = 'CAPCAK'
2. LCS 알고리즘 구현 (LCS 길이찾기)
문제 : [백준] 9251. LCS https://www.acmicpc.net/problem/9251
[풀이과정]
0 | C | A | P | C | A | K | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
A | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
C | 0 | 1 | 1 | 1 | 2 | 2 | 2 |
A | 0 | 1 | 2 | 2 | 2 | 3 | 3 |
Y | 0 | 1 | 2 | 2 | 2 | 3 | 3 |
K | 0 | 1 | 2 | 2 | 3 | 3 | 4 |
P | 0 | 1 | 2 | 3 | 3 | 3 | 4 |
- x와 y에 가장 최근에 추가된 글자가 서로 같으면 board[i][j] = board[i-1][j-1] + 1
- x와 y에 가장 최근에 추가된 글자가 서로 다르면 board[i][j] = max(board[i-1][j], board[i][j-1])
[코드]
3. LCS 알고리즘 구현 (LCS 글자찾기)
문제 : [백준] 9252. LCS2 https://www.acmicpc.net/problem/9252
[코드]
'알고리즘' 카테고리의 다른 글
[LEETCODE] 51. N-Queens (0) | 2021.01.01 |
---|---|
[알고리즘] heap 구조 (0) | 2020.12.30 |
[SWEA] 1264.이미지 유사도 검사 (0) | 2020.12.28 |
[LEETCODE] 17. Letter Combinations of a Phone Number (0) | 2020.12.25 |
[LEET CODE] 131. Palindrome Partitioning (0) | 2020.12.23 |