문제 보러가기 : https://www.acmicpc.net/problem/1120
이번 문제는 문자열 문제였습니다.
A와 B의 길이를 같게 할 때 A와 B 길이의 차이만큼 A의 앞 또는 뒤에 B와 같은 문자를 추가해주면 되므로 이 부분은 구현할 필요없이 입력받은 A와 B의 차이를 구하면 됩니다. 😺
《문제 풀이》
1. B의 인덱스를 증가시켜 가면서 A의 길이만큼 A와 B의 차이를 계산
2. A와 B 문자열의 문자가 다르면 카운트
3. 결과 값과 카운트 값 중 더 작은값으로 갱신
《C++ 코드》
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
string A, B;
cin>>A>>B;
int Alen = A.length();
int Blen = B.length();
int def = Blen - Alen;
// A와 B의 최대 차이는 50
int result = 50;
for(int i=0; i<=def; i++) {
int cnt = 0;
for(int j=0; j<Alen; j++) {
if(A[j] != B[j + i])
cnt++;
}
// 최솟값 갱신
result = min(result, cnt);
}
cout<<result;
return 0;
}
개발 환경: Dev-C++
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 2583번 영역 구하기 (0) | 2021.04.14 |
---|---|
백준 2293번 동전 1 (0) | 2021.03.18 |
백준 12852번 1로 만들기 2 (0) | 2021.03.01 |
백준 2263번 트리의 순회 (0) | 2021.02.25 |
백준 11404번 플로이드 (0) | 2021.02.21 |