문제
백준 1120번
1120번: 문자열
길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의
www.acmicpc.net
코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string A, B;
int main() {
cin >> A >> B;
int ans = 50;
int idx = B.length() - A.length();
for (int i = 0; i <= idx; i++) {
int cnt = 0;
for (int j = 0; j < A.length(); j++) {
if (A[j] != B[j+i]) cnt++;
}
ans = min(ans, cnt);
}
cout << ans;
}
풀이방법
B를 기준으로 A의 시작 위치를 바꿔가며 A와 B가 다른 부분의 개수를 각각 센다. 이 개수들 중에서 최솟값을 구한다. (A의 앞뒤에 추가하는 알파벳은 B에 맞춰주면 되므로 풀이에는 영향력이 없다.)
고민과정
풀이과정에서 헤매지는 않았다. 메소드를 좀 더 알아놔야겠다.
'algorithm > Bruteforce & Backtracking' 카테고리의 다른 글
[C++] BOJ 2798 JACK 블랙잭 (0) | 2021.04.03 |
---|---|
[C++] BOJ 2309 일곱 난쟁이 (0) | 2021.04.03 |
[C++] BOJ 18111 마인크래프트 (0) | 2021.04.03 |
[C++] BOJ 2231 Digit Generator 분해합 (0) | 2021.04.02 |