문자열의 양옆에 더미를 붙여서 경우의 수를 모두 만들고 그 경우를 모두 비교하여 차이를 벡터에 넣고
벡터에서 가장 작은 수를 구하고 더미의 수만큼 빼면 되는 문제였다
https://www.acmicpc.net/problem/1120
#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 |
댓글