백준 문제풀이/실버4

백준 1120번 - 문자열

void_melody 2021. 11. 9. 02:10

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

사고과정)

1. 배열의 갯수 차이만큼 A배열을 한칸씩 밀어가면서 비교한다.

2.  비교하는 과정 한 번 거칠 때마다 총 몇 개가 겹치지 않았는지 파악.

가장 최소 수 구하라는 건 결국엔 빈칸을 채워넣는 곳은 그냥 B배열과 같다라고 가정하고 하면 된다.

그림그려가면서했다..

#include <iostream>
#include <string>

using namespace std;
int main()
{
	string a, b;
	cin >> a >> b;
	
	int min = 50;
	

	int dif = b.length() - a.length();

	for (int len = 0; len <= dif; len++)	// 문자열 옮기는 경우 수
	{
		int count = 0;
		for (int i = 0; i < a.length(); i++)	// 글자수 만큼
		{
			if (a[i] != b[i + len])	// 한칸씩 밀면서 체크.
				count++;
		}
		min = min >= count ? count : min;
	}
	
	cout << min;
	return 0;

}