기록공간

문자열 (백준 - 1120번) 본문

Algorithm/문제

문자열 (백준 - 1120번)

입코딩 2020. 2. 12. 23:36
반응형

A가 B보다 작으므로 A를 앞에서 부터 한칸씩 옮기면서 B와 검사한다. 그리고 차이가 최소로 나는 값을 출력하면 된다. 앞이나 뒤에서 추가하는 작업을 할 필요는 없다. 왜냐하면 A에 앞이나 뒤로 B와 알맞은 값을 채워 넣는다고 가정하여, 추가한 위치의 알파벳은 항상 같기 때문이다. 

 

코드는 다음과 같다.

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string A, B;
	cin >> A >> B;

	int min = 50;

	int diffSize = B.size() - A.size();

	for (int i = 0; i <= diffSize; ++i)
	{
		int count = 0;

		for (int j = 0; j < A.size(); ++j)
		{
			if (A[j] != B[i + j])
				++count;
		}

		if (count < min)
			min = count;
	}

	cout << min << endl;
}

B와 A의 크기 차이를 구해 그 차이만큼 반복문을 돌려 A를 순차적으로 한칸씩 오른쪽으로 옮겨 놓고 B와 검사하여 가장 최소로 나오는 차이를 구하면 그것이 결과 값이다.

반응형

'Algorithm > 문제' 카테고리의 다른 글

기타줄 (백준 - 1049번)  (0) 2020.02.13
신입 사원 (백준 - 1946번)  (0) 2020.02.13
잃어버린 괄호 (백준 - 1541번)  (0) 2020.02.11
대회 or 인턴 (백준 - 2875번)  (0) 2020.02.11
30 (백준 - 10610번)  (0) 2020.02.11
Comments