Algorithm
Algorithm) SWEA 3304 최장 공통 부분 수열
행복하고 싶은 사람
2023. 1. 31. 19:48
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
최장 공통 부분 수열 문제입니다.
lcs를 알고 있다면 쉽지만 떠올리긴 쉽지 않은 문제라고 느껴지네요
혹 모르신다면 요 글 참고하세용
https://kuk6933.tistory.com/103
Algorithm) 최장 공통 부분 수열(Longest Common Subsequence) c++
DP 문제를 풀다가 만나게 된 친구입니다 BCD처럼 연속된 것만 찾는다면 최장 공통 문자열 BCDF, BCDE처럼 연속되지 않아도 된다면 최장 공통 부분 수열입니다 최장 공통 문자열의 점화식은 요렇고 if
kuk6933.tistory.com
#include<iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
string a,b;
cin>>a>>b;
vector<vector<int>>v (1001, vector<int>(1001, 0));
if(a.size() > b.size()) {
swap(a,b);
}
for(int i=1; i<=a.size(); i++) {
for(int j=1; j<=b.size(); j++) {
if(a[i-1] == b[j-1]) {
v[i][j] = v[i-1][j-1] +1;
} else {
v[i][j] = max(v[i-1][j], v[i][j-1]);
}
}
}
cout<<"#"<<test_case<<" " << v[a.size()][b.size()]<<"\n";
}
return 0;
}