알고리즘 모음(C++)

백준 1120 - 문자열(C++) 본문

백준

백준 1120 - 문자열(C++)

공대생의 잡다한 사전 2023. 6. 11. 23:58

문제 링크입니다. 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와 같은 길이로 만들 때, A와 B의 차이를 구하는 문제입니다.

 

문제를 푸는 키는 원하는 알파벳을 추가한다는 것이였습니다.

 

따라서 A와 B를 비교해 차이가 가장 작은 위치를 찾습니다.

해당 위치에서 남은 길이를 B와 똑같이 추가하면 되니 이때의 차이가 답입니다.

 

자세한 것은 코드를 참고해주세요

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <string>

using namespace std;

string x, y;

void solve(){
    int mini = 987654321;
    for(int i = 0; i < y.size(); i++){
        if(i + x.size() > y.size()) continue;
        int diff = 0;
        for(int j = 0; j < x.size(); j++){
            if(x[j] != y[i + j]) diff++;
        }
        mini = min(diff, mini);
    }
    cout << mini;
}

int main(){
    cin.tie(0);
    cout.tie(0);
    cin >> x >> y;
    solve();
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주새요.

'백준' 카테고리의 다른 글

백준 1212 - 8진수 2진수(C++)  (0) 2023.06.18
백준 4999 - 아!(C++)  (0) 2023.06.15
백준 1213 - 펠린드롬 만들기(C++)  (0) 2023.06.11
백준 2935 - 소음(C++)  (0) 2023.06.09
백준 1919 - 애너그램 만들기(C++)  (0) 2023.06.09