[C] 백준 1120 문자열
https://www.acmicpc.net/problem/1120
문제
길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다.
두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.
- A의 앞에 아무 알파벳이나 추가한다.
- A의 뒤에 아무 알파벳이나 추가한다.
이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.
제출 10960 정답 비율 53%
코드
#include <stdio.h>
#include <string.h>
void main() {
char A[50], B[51];
int save[50] = { 0 };
scanf("%s %s", &A, &B);
for (int i = 0; i <= strlen(B) - strlen(A); i++) {
int dif = 0;
for (int j = 0; j <= i; j++) {
A[j+1] = A[j];
}
for (int k = 0; k <= i + strlen(A); k++) {
if (A[k] != B[k])
dif++;
}
save[i] = dif;
}
int min = save[0];
for (int i = 0; i < 50; i++) {
if (save[i] < min) {
min = save[i];
}
}
printf("%d", min);
}
Author And Source
이 문제에 관하여([C] 백준 1120 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@z00m__in/C-백준-1120-문자열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)