- ๋ค์ต์คํธ๋ผ
- ์๊ณ ๋ฆฌ์ฆ
- go
- DP
- BFS
- ์นด์นด์ค2021
- ๋นํธ๋งต
- Union-Find
- ์นด์นด์ค ์ฝํ
- ์น๋ฆฐ์ด
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋นํธ๋ง์คํน
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- golang
- js
- DFS
- ํธ๋ฆฌ
- ์ด๋ถํ์
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ๋ฐฑ์ค
- nestjs
- LCs
- ์์ฝ๋
- C++
- ์ํฐ๋
- Python
- ์ฌ๊ท
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- Today
- Total
Hello Ocean! ๐ผ
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #9251 LCS ๋ณธ๋ฌธ
๋ฌธ์
LCS(Longest Common Subsequence, ์ต์ฅ ๊ณตํต ๋ถ๋ถ ์์ด)
๋ ์์ด์ด ์ฃผ์ด์ก์ ๋, ๋ชจ๋์ ๋ถ๋ถ ์์ด์ด ๋๋ ์์ด ์ค ๊ฐ์ฅ ๊ธด ๊ฒ์ ์ฐพ๋ ๋ฌธ์ .
์๋ฅผ ๋ค์ด, ACAYKP์ CAPCAK์ LCS๋ ACAK๊ฐ ๋๋ค.
=> ์ฐ์ํ์ง ์์๋ ๋๋ค๋ ๊ฒ์ด ํฌ์ธํธ.
ํ์ด
2์ฐจ์ cache๋ฅผ ์ด์ฉํ DP ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋๋ค. ๋ง๋ก ํ์ด ์ด ๊ฒ์ ์ดํดํ๊ธฐ ํ๋๋ฏ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด์๋ค.
s1 = ACAYKP
s2 = CAPCAK ๋ฅผ ์ ๋ ฅํ์ ๋ cache์ ๋ชจ์ต์ด๋ค.
cache[i][j]์๋ s1์ i ๋ฒ์งธ์ s2์ j ๋ฒ์งธ๊ฐ ๊ฐ์ ๋ ๊ฐ์ด ์ฑ์์ง๋ค. (๊ฐ์ง ์์ ๊ฒฝ์ฐ์๋ 0์ด ์ฑ์์ง๋ค)
๋์ด ๊ฐ์ ๋, ๊ทธ๋ฅ 1์ ์ฑ์ฐ๋ ๊ฒ์ด ์๋๋ผ ์ง๋ ๊ตฌ์ญ์์ ๊ฐ์ฅ ํฐ ๊ฐ+1์ ์ฑ์ด๋ค.
์ฒซ ๋ฒ์งธ ๊ทธ๋ฆผ์์ ๋นจ๊ฐ์ ์นธ์ ์ฑ์ฐ๊ธฐ ์ํด ํ๋์ ์นธ๋ค์ ๊ณ ๋ คํด์ผ ํ๋ค.
๋ ๋ฒ์งธ ๊ทธ๋ฆผ์์๋ ๊ฐ๊ฐ ๋ถํ์๊ณผ ๋ณด๋ผ์ ์นธ์ด ์ด๋ป๊ฒ ์ฑ์์ง๋์ง ํ์ํด๋์๋ค.
์ด๋ฌํ ๊ท์น์ผ๋ก cache๋ฅผ ์ฑ์๋๊ฐ๋ฉด ๋๋ค.
์ ์ผ ๋ง์ง๋ง row์ ์ต๋๊ฐ์ด ์์ ๊ฒ์ด๋ ๋ณด์ฅ์ด ์์ผ๋ฏ๋ก
๊ฐ column๋ณ๋ก ์ต๋๊ฐ์ ์ ์ฅํ๋ ๋ฐฐ์ด์ ์ฌ์ฉํด์ ๋งจ ๋ง์ง๋ง์๋ ์ด ๋ฐฐ์ด์์์ ์ต๋๊ฐ์ ์ฐพ์ผ๋ฉด ๋๋ค.
์ฝ๋
#include <stdio.h>
#include <string.h>
using namespace std;
int main() {
char str1[1001];
char str2[1001];
scanf_s("%s", str1);
scanf_s("%s", str2);
int len1 = strlen(str1);
int len2 = strlen(str2);
int cache[1001][1001] = { 0, };
int maxC[1001] = { 0, };
int after[1001] = { 0, };
int M;
for (int i = 0;i < len1;i++) {
for (int j = 0;j < len2;j++)
maxC[j] = after[j];
for (int j = 0;j < len2;j++) {
if (str1[i] == str2[j]) {
M = 0;
for (int k = 0;k < j;k++) {
if (M < maxC[k])
M = maxC[k];
}
cache[i][j] = M + 1;
if (M + 1 > maxC[j])
after[j] = M + 1;
}
}
}
int result = 0;
for (int i = 0;i < len2;i++) {
if (result < after[i])
result = after[i];
}
printf("%d", result);
printf("\n");
}*/
}
maxC (๊ฐ column๋ณ ์ต๋๊ฐ์ ์ ์ฅํ๋ ๋ฐฐ์ด) ์ ํ row๊ฐ ๋๋๊ธฐ ์ ์ ์ ๋ฐ์ดํธํ๋ฉด, ์ ๋๋ก๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๊ธฐ ๋๋ฌธ์ after๋ฐฐ์ด์ ๋ง๋ค์ด์ ์ด์ฉํ์๋ค.
์ ์ถ ๊ฒฐ๊ณผ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ์๊ณ ์คํ #PI (0) | 2020.04.27 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #1461 ๋์๊ด (1) | 2020.04.23 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋]์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ๋ต LIS (0) | 2020.04.13 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ์๊ณ ์คํ #TRIANGLEPATH (0) | 2020.04.13 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #1417 ๊ตญํ์์ (0) | 2020.04.11 |