문제출처 : https://www.acmicpc.net/problem/24524
code
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
int i, j, cnt = 0;
string S, T;
cin >> S;
cin >> T;
int Slen = S.size();
int Tlen = T.size();
vector<int> A(Tlen);
for (i = 0; i < Slen; i++)
for (j = 0; j < Tlen; j++)
if (S[i] == T[j])
{
if (j == 0)
A[j]++;
else if(A[j]<A[j-1])
A[j]++;
}
cout << A[Tlen - 1];
return 0;
}
학교에 남아서 혼자 이문제푸느라 정말 고생많이하고 몇날 며칠을 고민했었는데...
도저히 구현을 못하겠어서 블로그를 찾아봤는데, 정말 명쾌하게 설명해주신 분이 계셔서 참고했다.
참고블로그 출처 : https://gyunseo.com/study/ps/acmicpc-24524/#comment-122
진짜 코드도 깔끔하게 딱 정리해서 짜서서 정말 완벽한 풀이인것 같다.
나는 왜 이런생각을 못했을까 싶고 나도 이런 코드를 짜고 싶다.