백준 9935 문자열 폭발 / C++

이유참치·2025년 12월 15일

백준

목록 보기
121/249

문제 : 9935

풀이 point

tmp의 문자열에 계속해서 s[i]값을 더해간다. 더해가면서 tmp의 길이와 폭발 문자열의 길이가 같으면 뒤에서 부터 폭발 문자열과 tmp문자열이 같은지를 검사한다. 같다면 길이만큼 삭제
같지 않으면 계속 진행한다.

코드

//백준 9935, 문자열 폭발

#include <iostream>

int main (){

    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    std::cout.tie(NULL);

    std::string s, boom; std::string tmp = "";
    std::cin >> s;
    std::cin >> boom;
    
    for(int i{0}; i<s.size(); ++i){
        tmp.push_back(s[i]);
        if(tmp.length() >= boom.length()){
            bool flag = true;
            for(int j{0}; j<boom.length(); ++j){
                if(tmp[tmp.length()-j-1] != boom[boom.length()-j-1]){
                    flag = false;
                    break;
                }
            }
            if(flag){
                tmp.erase(tmp.end()-boom.length(), tmp.end());
            }
        }
    }

    if(tmp.empty()) std::cout << "FRULA";
    else std::cout << tmp;

    return 0;
}
profile
임아리 - 대학생

0개의 댓글