반응형
https://www.acmicpc.net/problem/5582
문제 해결 알고리즘
간단한 문자열 + DP 문제
문자열을 탐색할 때, 두 문자가 같으면 그 두개의 전에 해당하는 배열에서 +1한 값을 입력한다.
거기서 최댓값을 구해준다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int dp[4001][4001], result = 0;
int main(){
string str1, str2; cin >> str1 >> str2;
str1 = '0' + str1;
str2 = '0' + str2;
for(int i=1;i<str1.size();i++){
for(int j=1;j<str2.size();j++){
if(str1[i] == str2[j]) dp[i][j] = dp[i-1][j-1] + 1;
result = max(result, dp[i][j]);
}
}
cout << result;
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[DP] BOJ 7579 앱 (C++) (0) | 2022.10.05 |
---|---|
[DP] BOJ 11062 카드 게임 (C++) (0) | 2022.10.02 |
[DP] BOJ 1915 가장 큰 정사각형 (C++) (0) | 2022.09.27 |
[브루트 포스, 백 트래킹] BOJ 14500 테트로미노 (C++) (1) | 2022.09.24 |
[세그먼트 트리] BOJ 2268 수들의 합 7 (C++) (0) | 2022.09.21 |