[백준 9251] LCS
        
        
      [백준 9251] LCS
using namespace std;
string text1, text2;
int dp[1004][1004];
void solve() {
  for(int i=1; i<=text1.length(); i++) {
    for(int j=1; j<=text2.length(); j++) {
      if(text1[i-1] == text2[j-1]) {
        dp[i][j] = dp[i-1][j-1] + 1;
      } else {
        dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
      }
    }
  }
  cout << dp[text1.length()][text2.length()];
}
int main() {
  cin >> text1 >> text2;
  solve();
  return 0;
}

- 해당 그림에서 볼 수 있다시피 인덱스를 1부터 시작한다 (i-1, j-1 처리를 위해)
 - 만약 
text1[i]와text2[j]가 같다면, 하나가 더 길어진 것이기 때문에 +1을 해 준다. - 같지 않다면, 이전의 값에서의 최댓값으로 업데이트 해 준다.