[Algorithm] BOJ 9935 문자열 폭발

Juppi·2023년 2월 24일
0

문제 링크

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

문제 풀이

stack에 문자열을 하나하나 넣은다음, 폭발 문자열의 길이보다 같거나 클경우 폭발 문자열과 대조하여 삭제시켜 문제를 풀었다

코드

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector<char> v;
string s, bomb;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    cin >> s >> bomb;

    int sLen = s.size();
    int bombLen = bomb.size();

    for (int i=0; i<sLen; i++) {
        v.push_back(s[i]);

        if (v.size() >= bombLen) {
            int flg = 1;
            for (int j=0; j<bombLen; j++) {
                if (v[v.size()-bombLen+j] != bomb[j]) {
                    flg = 0;
                    break;
                }
            }

            if (flg) {
                for (int j=0; j<bombLen; j++) {
                    v.pop_back();
                }
            }
        }
    }

    if (v.empty()) cout << "FRULA";
    else {
        for (char &a : v)
            cout << a;
    }

    return 0;
}
profile
잠자면서 돈버는 그날까지

0개의 댓글