풀이
그리디하게 풀어보자.
a의 길이가 b보다 짧으므로 a[i] != b[j]
의 개수가 가장 짧은 구간을 택하면
아무 문자나 양옆으로 붙일 수 있으므로
최소의 a[i] != b[j]
합이 답이 된다.
코드
#include <cstdio>
#include <cstring>
char a[55], b[55];
int alen, blen, sum, min = 1e9, i, j;
int main() {
scanf("%s %s", a, b);
alen = strlen(a);
for (; b[i + alen - 1]; i++, sum = 0) {
for (j = 0; a[j]; j++) sum += (a[j] != b[i + j]);
min = min < sum ? min : sum;
}
return ~printf("%d", min);
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이