본문 바로가기
알고리즘/백준

[Java] BOJ 9935번 문자열 폭발

by 컴공맨 2021. 8. 22.
 

9935번: 문자열 폭발

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

www.acmicpc.net


풀이

스택을 사용하여 해결했습니다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main {
	public static String input, explosive;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		input = br.readLine();
		explosive = br.readLine();
		
		Stack<Character> stk = new Stack<>();
		
		for (int i = 0; i < input.length(); ++i) {
			stk.push(input.charAt(i));
			
			if (stk.size() >= explosive.length()) {
				boolean flag = true;
				for (int j = 0; j < explosive.length(); ++j) {
					if (stk.get(stk.size() - 1 - j) != explosive.charAt(explosive.length() - 1 - j)) {
						flag = false;
						break;
					}
				}
				
				if (flag) {
					for (int j = 0; j < explosive.length(); ++j) {
						stk.pop();
					}
				}
			}
		}
		
		StringBuilder answer = new StringBuilder("");
		for (Character ch : stk) {
			answer.append(ch);
		}
		
		System.out.println((answer.length() == 0) ? "FRULA" : answer);
	}
}

 

GitHub - pyo7410/Algorithm: 1일 1커밋을 목표로!

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > 백준' 카테고리의 다른 글

[Java] BOJ 5052번 전화번호 목록  (0) 2021.08.23
[Java] BOJ 1715번 카드 정렬하기  (0) 2021.08.22
[Java] BOJ 1976번 여행 가자  (0) 2021.08.20
[Java] BOJ 15684번 사다리 조작  (0) 2021.08.18
[Java] BOJ 17298번 오큰수  (0) 2021.08.12