Algorithm/백준 문제풀이

[백준] 9935번 문자열 폭발 - Java

너지살 2022. 5. 9. 19:29

 

 

문제출저 : 

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

 

9935번: 문자열 폭발

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

www.acmicpc.net

 

 

소스코드 : 

package studyGroup.may.may5;


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

public class 문자열폭발9935 {

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

        String s = br.readLine();
        String bomb = br.readLine();


        Stack<Character> store = new Stack<>();
        char trigger = bomb.charAt(bomb.length()-1);

        for(int i = 0; i < s.length(); i++)
        {
            char one = s.charAt(i);
            store.add(one);

            if(store.size() >= bomb.length() && one == trigger)
            {
                Stack<Character> temp = new Stack<>();
                for(int j = bomb.length()-1; j >= 0; j--)
                {
                    char check = store.pop();
                    temp.add(check);
                    if(check != bomb.charAt(j))
                    {
                        while(!temp.isEmpty()) {
                            store.add(temp.pop());
                        }
                        break;
                    }

                }
            }
        }

        StringBuilder sb = new StringBuilder();
        for(Character c : store)
        {
            sb.append(c);
        }

        System.out.println(sb.length()==0 ? "FRULA" : sb.toString());


    }



}