본문 바로가기
이것저것

SW 3304 최장공통부분수열 [D3]

by 문자메일 2018. 4. 2.

/*

최장 공통 부분 수열


*/

#include <stdio.h>

#include <string>

#include <iostream>


#define MAX 1001


using namespace std;


int T;

int arr[MAX][MAX] = { 0, };

char str1[1001], str2[1001];



void init()

{

for (int i = 0; i < MAX; i++)

for (int j = 0; j < MAX; j++)

arr[i][j] = 0;

}


int lcs(){

int i, j;

for (i = 1; str1[i-1] != '\0'; i++){

for (j = 1; str2[j - 1] != '\0'; j++){

if (str1[i-1] == str2[j-1])

arr[i][j] = arr[i - 1][j - 1] + 1;

else

arr[i][j] = arr[i][j - 1] > arr[i - 1][j] ? arr[i][j - 1] : arr[i - 1][j];

}

}

return arr[i-1][j-1];

}


int main()

{

int ans;

scanf("%d", &T);

for (int tc = 1; tc <= T; tc++){

cin >> str1 >> str2;

//cout << str1 << str2 << endl;

init();

ans = lcs();

printf("#%d %d\n", tc, ans);


}

return 0;

}

'이것저것' 카테고리의 다른 글

SW 2477 차량 정비소 문제  (0) 2018.04.12
SW 4013 특이한 자석 소스코드  (0) 2018.04.08
백준 2178 미로탐색  (0) 2018.04.01
SW 4050 재광이의 대량 할인 [D4]  (0) 2018.03.30
SW 4047 영준이의 카드 카운팅 D3 (C++)  (0) 2018.03.29

댓글