Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- ๋์ ํ ๋น๋ฒ
- html #css์ ๋ฌธ #visual studio
- ๋ฏธ๊ตญ์ฌํ #๋ฏธ๊ตญ์ ๊ตญ์ฌํ
- ๊ฐ๋ฐ์์ค๋น #์ปดํจํฐ๊ณตํ๊ณผ
- HTML์ ๋ฌธ
- 2579
- GitHub
- ๋ฐฑ์ค
- C++
Archives
- Today
- Total
๐๊ฐ๋ฐ๊ณผ ์ผ์ (โง∇โฆ)๏พ
[๋ฐฑ์ค c++] 9251 LCS (๊ณจ5) ๋ณธ๋ฌธ
๐ ๋ฌธ์
Longest Common Subsequence, ์ต์ฅ ๊ณตํต ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ๋ฌธ์ ๋ค. ์ด ๋ฌธ์ ๋ ์ง์ ์ ์ผ๋ก ๋ฌธ์ ์ ๊ท์น์ ์๋ ค์ฃผ์ง ์์ง๋ง ์๋ฌต์ ์ธ ๊ท์น์ด ์กด์ฌํ๋ค.์ผ๋จ ๋ถ๋ถ ์์ด์ ๋ง๋ค ๋ ๋ฌด์กฐ๊ฑด ์์ด ๋ด ์ํ๋ฒณ ์์๋ฅผ ์ง์ผ์ผํ๋ค๋ ์ ์ด๋ค.
ํ์๋ ์ด ๋ฌธ์ ๊ฐ DP๋ก ํ๋ฆฐ๋ค๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ์ด๋ป๊ฒ ํ์ด์ผํ์ง?? ๋ง๋งํ๋ค. ํ์ง๋ง DP๋ผ๋ ๋ฌธ์ ๋ฅผ ์๊ฐํด๋ด๋ฉด ๊ธ๋ฐฉ ํ ์ ์๋ ๋ฌธ์ ๋ค.
๋จผ์ ๋ฌธ์์ด ๋ณ๋ก ๋ฐฐ์ด์ ๋ ๊ฐ ์์ฑํ ์ ์๋๋ก ํ๋ค.
๐ป ์ ๋ต ์ฝ๋
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//์ฒซ์งธ ์ค๊ณผ ๋์งธ ์ค์ ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค.
//๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ต๋ 1000๊ธ์๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
string str1, str2; cin >> str1 >> str2;
int M = str1.size();
int N = str2.size();
vector<vector<int>> dp(M+1);
for (int i = 0; i < M + 1; i++) dp[i].resize(N + 1, 0);
//๋น๊ต ์งํํ๊ธฐ
for (int i = 0; i < M ; i++){
for (int j = 0; j < N ; j++) {
//๊ฐ์ ๊ฒฝ์ฐ
if (str1[i] == str2[j]) dp[i + 1][j + 1] = dp[i][j] + 1;
//๋ค๋ฅผ ๊ฒฝ์ฐ
else dp[i + 1][j + 1] = dp[i][j + 1] > dp[i + 1][j] ? dp[i][j + 1] : dp[i + 1][j];
}
}
cout << dp[M][N] << endl;
return 0;
}
'CS > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค c++] 1105 ํ (์ค1) (0) | 2023.09.25 |
---|---|
[๋ฐฑ์ค c++] 1062 ๊ฐ๋ฅด์นจ (๊ณจ4) (0) | 2023.09.17 |
[๋ฐฑ์ค c++] 2292 ๋ฒ์ง (๋ธ2) (0) | 2023.02.24 |
[๋ฐฑ์ค c++] 1018 ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (์ค4) (0) | 2023.02.24 |
[๋ฐฑ์ค c++] 2798 ๋ธ๋์ญ 2ํธ (๋ธ2) (0) | 2023.02.24 |