티스토리 뷰

알고리즘/백준

백준 9935 (문자열 폭팔) - java

김다미김태리신시아 2023. 8. 4. 00:07

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

 

9935번: 문자열 폭발

첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모

www.acmicpc.net

import java.util.*;
import java.io.*;

public class Main {
    static char[] arr;
    static char[] boom;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        arr = br.readLine().toCharArray();
        boom = br.readLine().toCharArray();

        Stack<Character> stack = new Stack();

        for(int i=0;i<arr.length;i++)
        {
            stack.push(arr[i]);

            if(!stack.isEmpty() && stack.size() >= boom.length)
            {
                int idx = stack.size()-1;
                boolean pop = true;
                for(int j=boom.length-1;j>=0;j--)
                {
                    if(stack.get(idx) != boom[j])
                    {
                        pop = false;
                        break;
                    }

                    idx = idx -1;
                }

                if(pop)
                {
                    for(int j=boom.length-1;j>=0;j--)
                    {
                        stack.pop();
                    }
                }
            }

        }

        if(stack.isEmpty())
            System.out.println("FRULA");

        else{
            StringBuilder sb = new StringBuilder();

            for(int i=0;i<stack.size();i++)
            {
                sb.append(stack.get(i));
            }

            System.out.println(sb.toString());
        }
        br.close();
    }
}