https://www.acmicpc.net/problem/5582
LCS 문제인줄 알고 풀었는데 연속된 문자열만 인정하는 문제였다. LCS 하위호환 문제같다.
더보기
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int dp[4001][4001];
int main()
{
string s1, s2;
cin >> s1 >> s2;
int l1 = s1.length();
int l2 = s2.length();
int mx = 0;
for (int i = 1; i <= l1; i++) {
for (int j = 1; j <= l2; j++) {
if (s1[i - 1] == s2[j - 1]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
if (mx < dp[i][j]) mx = dp[i][j];
}
}
}
cout << mx;
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 10835. 카드게임 (0) | 2020.06.08 |
---|---|
[BAE/<JOON> 문제풀이] 9184. 신나는 함수실행 (0) | 2020.06.07 |
[BAE/<JOON> 문제풀이] 1958. LCS3 (0) | 2020.06.05 |
[BAE/<JOON> 문제풀이] 1660. 캡틴 이다솜 (0) | 2020.06.04 |
[BAE/<JOON> 문제풀이] 2240. 자두나무 (0) | 2020.06.03 |