(C++) 백준 9935 문자열 폭발

minmingo·2022년 3월 16일
0

문제 및 풀이

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

입력받은 문자열을 하나씩 스택에 넣는다.
폭발 문자열의 마지막 글자와 같을때마다 스택 내에 폭발 문자열이 있는지 탐색하고 폭발 문자열이 있으면 pop 해준다.

vector로 구현했다.

코드

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


int main(){
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);


    string str, ref;
    cin>>str>>ref;
    int ref_size = ref.length();

    vector<char> v;


    for(int i=0; i<str.length(); i++){
        v.push_back(str[i]);
        bool flag = true;
        if(v.size()>=ref.size() && str[i]==ref[ref_size-1]){
            for(int i=0; i<ref_size; i++){
                if(v[v.size()-1-i]!=ref[ref_size-1-i]) {
                    flag=false;
                    break;
                }
            }
            if(flag) for(int i=0; i<ref_size; i++) v.pop_back();
        }
    }

    if(v.empty()) cout<<"FRULA";
    else for(int i=0; i<v.size(); i++) cout<<v[i];

}

0개의 댓글