https://www.acmicpc.net/problem/9251
9251번: LCS
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
www.acmicpc.net
#include <iostream>
using namespace std;
string one,two;
int visit[1001][1001]={0};
void solve(){
for(int i=1;i<=two.length();i++){
for(int j=1;j<=one.length();j++){
if(one[j-1]==two[i-1]) visit[i][j]=visit[i-1][j-1]+1;
else visit[i][j]=max(visit[i-1][j],visit[i][j-1]);
}
}
}
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
cin>>one>>two;
solve();
cout<<visit[two.length()][one.length()];
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 15686번 : 치킨 배달 (0) | 2024.02.18 |
---|---|
[C++] 백준 14889번 : 스타트와 링크 (0) | 2024.02.18 |
[C++] 백준 1965번 : 상자넣기 (0) | 2024.02.13 |
[C++] 백준 13164번 : 행복 유치원 (0) | 2024.02.06 |
[C++] 백준 11052번 : 카드 구매하기 (0) | 2024.02.06 |