본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1120/c++] 문자열

by tokkiC 2022. 7. 24.

문자열의 양옆에 더미를 붙여서 경우의 수를 모두 만들고 그 경우를 모두 비교하여 차이를 벡터에 넣고

벡터에서 가장 작은 수를 구하고 더미의 수만큼 빼면 되는 문제였다

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

#include <bits/stdc++.h>
using namespace std;

int main(){
	
	int diflen;
	int cnt = 0;
	int ans;
	vector<int> v;
	string a, b, temp;
	string s = "0";
	cin >> a >> b;
	diflen = b.length() - a.length();
	if (diflen == 0)
	{
		for (int i = 0; i < b.length(); i++)
		{
			if (a[i] != b[i])
			{
				cnt++;
			}
		}
		v.emplace_back(cnt);
		cnt = 0;
	}
	for (int i = 0; i <= diflen; i++)
	{
		temp = a;
		for(int t = 0; t < i; t++)
		{
			temp = s + temp;
		}
		for (int t = 0; t < diflen - i; t++)
		{
			temp = temp + s;
		}
		for (int j = 0; j < b.length(); j++)
		{
			if (temp[j] != b[j])
			{
				cnt++;
			}
		}
		v.emplace_back(cnt);
		cnt = 0;
	}
	ans = *min_element(v.begin(), v.end()) - diflen;
	cout << ans << "\n";
	
	return 0;
}

'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글

[백준 5555/c++] 반지  (0) 2022.07.27
[백준 1269/c++] 대칭 차집합  (0) 2022.07.25
[백준 7568/c++] 덩치  (0) 2022.07.23
[백준 11659/c++] 구간 합 구하기 4  (0) 2022.07.22
[백준 1065/c++] 한수  (0) 2022.07.21

댓글