728x90
https://www.acmicpc.net/problem/1120
1120번: 문자열
길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의
www.acmicpc.net
문제 요약
문자열 X, Y의 차이는 X[i] != Y[i]인 i의 개수
A는 B의 길이보다 작거나 같고, A의 길이와 B의 길이가 동일해질 때까지
A 앞에 알파벳 추가 혹은 A 뒤에 알파벳 추가한다.
A 길이 == B 길이 이면서 A와 B 차이를 최소화한 값을 구하라.
범위
A와 B의 최대 길이 50
앞뒤로 원하는 알파벳을 채울 수 있기 때문에 B와 동일한 알파벳으로 채운다고 생각하고
B를 고정시킨 상태에서 A를 옆으로 이동시키면서 가장 차이가 작은 것을 찾으면 된다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string A, B;
void solution(){
int minI = 51, cnt = 0;
size_t LA = A.length(), LB = B.length();
for(int i=0; i<=LB-LA; ++i){
cnt = 0;
for(int j=0; j<LA; ++j){
if(A[j] != B[j+i]) cnt++;
}
minI = min(minI, cnt);
}
cout << minI << '\n';
}
int main() {
ios::sync_with_stdio(0); cout.tie(0); cin.tie(0);
cin >> A >> B;
solution();
return 0;
}
💡공부 및 기록용 블로그이므로 오류가 있을 수 있습니다.💡
만약 문제에 오류나 오타가 있다면 댓글로 알려주세요➿
언제나 환영합니다. 감사합니다. 화이팅!
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[c++] 1260번: DFS와 BFS (0) | 2022.01.17 |
---|---|
[c++] 2548번: 대표 자연수 (0) | 2022.01.16 |
[c++] 15565번: 귀여운 라이언 (0) | 2022.01.16 |
[c++] 2559번: 수열 (0) | 2022.01.16 |
[c++] 2003번: 수들의 합 2 (0) | 2022.01.16 |