728x90
문제 1120번
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
어떻게 풀지 고민하다가 찾아보니까 A,B가 가장 겹치는 곳을 count 해주고 그 count에 두 단어의 길이 차이를 더해준다(A의 앞과 뒤에 문자를 추가해주는 경우). B의 길이에서 count를 뺀 만큼이 차이값이므로 이를 출력해주면 된다고 한다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string A,B;
cin >> A >> B;
int len = B.length() - A.length(); //길이 차이
int result = 0;
for (int i = 0; i <= len; i++) {
int count = 0;
for (int j = 0; j < A.length(); j++) { //A가 B보다 작거나 같으니까
if (A[j] == B[j + i]) {
count++;
}
}
result = max(result, count);
}
result = B.length() - (result + len);
cout << result;
return 0;
}
[참고] https://j3sung.tistory.com/375
내일 한번 더 풀어봐야겠다...
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 3052번 - 나머지 && 백준 11720번 - 숫자의 합 (0) | 2024.03.30 |
---|---|
[C++] 백준 2577번 - 숫자의 개수 (0) | 2024.03.30 |
[C++] 백준 27866번 - 문자와 문자열 (0) | 2024.03.27 |
[C++] 백준 1072번 - 게임 (0) | 2024.03.27 |
[C++] 백준 1789번 - 수들의 합 (0) | 2024.03.25 |