
한번 분할정복법으로 해볼려니까 잘 안되네요;
10
television
10
telephones
로 했더니
6이 아니라 4로 나오고요;
#include <stdio.h>
#include <string.h>
char A[10002],B[10002];
int MAX(int i,int j)
{
if(i>j)
return i;
else
return j;
}
int c(int i,int j)
{
if(i==0 || j==0)
return 0;
else if(A[i]==B[i])
return c(i-1,j-1)+1;
else
return MAX(c(i,j-1),c(i-1,j));
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int n,m;
scanf("%d",&n);
scanf("%s",A+1);
scanf("%d",&m);
scanf("%s",B+1);
printf("%d",c(n,m));
return 0;
}
여기서 틀린것이 뭐인지 알려주시면 감사하겠습니다