코드#include #include #include using namespace std;int dp[1003][1003];string a, b;int main() { cin >> a; cin >> b; for (int i = 1; i 풀이dp배열의 정의는 문자열 a의 처음 i개의 문자와 문자열 b의 처음 j개의 문자 사이에서 최장 공통 부분 수열의 길이를 의미한다. 두 문자가 일치하는 경우 (a[i - 1] == b[j - 1])에 공통 부분 수열의 길이는 이전까지의 길이에 1을 더해준 값이 된다. 따라서 dp[i][j] = dp[i - 1][j - 1] + 1가 된다. 두 문자가 일치하지 않는 경우에는 공통 부분 수열에 포함되지 않으므로, 최장 공통 부분 수열의 길이는 이전 상태 중 최댓값을 그대로 ..