#include <stdio.h>
#include <string.h>
#define MAX_N 1000
#define MAX_M 1000
char s[MAX_N], t[MAX_M];
int dp[MAX_N+1][MAX_M+1]={0,};
int max(int left, int right){
if(left>right)
return left;
else
return right;
}
int main(int argc, char *argv[]){
int n,m;
strcpy(s+1,"abcd");
strcpy(t+1,"becd");
n=strlen(s+1);
m=strlen(t+1);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i+1]==t[j+1]){
dp[i+1][j+1]=dp[i][j]+1;
}else{
dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
}
}
}
printf("%d\n",dp[n][m]);
printf("\nDP 테이블\n");
for(int i=0;i<n+1;i++){
for(int j=0;j<m+1;j++){
printf("%d ",dp[i][j]);
}
printf("\n");
}
return 0;
}
이것이 뭐하는 프로그램일랑교??