Programing/백준, 프로그래머스(C++)

[C++][백준 9935] 문자열 폭발

hye3193 2025. 1. 16. 15:31

https://www.acmicpc.net/problem/9935

풀이

입력받은 문자열을 char 단위로 응답할 새로운 문자열에 추가시켜준다

만약 폭발 문자열의 마지막 문자를 추가했다면, 해당 문자열의 앞부분을 확인해서 폭발 문자열이 존재할 경우 없애준다

 

제출 코드

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

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    string str, explode, res = "";
    cin >> str >> explode;

    int len = explode.length();
    char lastChar = explode.back();
    for (int i = 0; i < str.length(); i++)
    {
        res += str[i];
        if (str[i] == lastChar)
        {
            bool e = true;
            for (int j = 0; j < len; j++)
                if (res[res.length() - len + j] != explode[j])
                    e = false;
            if (e)
                res.erase(res.length() - len, len);
        }
    }

    cout << ((res.length() == 0) ? "FRULA" : res);
}