본문 바로가기

백준/C++

[C++] 백준 1120번 - 문자열

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