반응형
package com.ji.beakjoon;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * 문자열 폭발
 * @author ji
 *
 */
public class StringExplosion {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String str = br.readLine();
		String bomb = br.readLine();
		String answer = solution(str, bomb);
		bw.write(String.valueOf((answer.length() == 0) ? "FRULA" : answer) + "\n");

		br.close();
		bw.flush();
		bw.close();
	}

	private static String solution(String str, String bomb) {
		char[] result = new char[str.length()];
		int idx = 0;
		for (int i = 0; i < str.length(); i++) {
			result[idx] = str.charAt(i);
			//폭발할 문자열이 나타나면 하나씩 증가하면 인덱스를 
			//검증할 문자열 길이 만큼 감소 시켜 감을 넣게된다.
			if (isBomb(result, idx, bomb))
				idx -= bomb.length();
			idx++;
		}
		return String.valueOf(result, 0, idx);
	}

	private static boolean isBomb(char[] result, int idx, String bomb) {
		if (idx < bomb.length() - 1)
			return false;
		for (int i = 0; i < bomb.length(); i++) {
			int resultIndex = idx - bomb.length() + 1 + i;
			//검증할 문자열 길이 만큼의 index와 result의 저장된 문자열이 같은지 검사
			//첫번째 문자열이 다르면 loop탈출
			if (bomb.charAt(i) != result[resultIndex])
				return false;
		}
		return true;
	}

}
728x90

'[개발관련] > 코테준비' 카테고리의 다른 글

[백준] 트리순회  (0) 2021.06.20
[백준] 구슬탈출 4 for JAVA  (0) 2021.06.20
[백준] 듣보잡  (0) 2021.06.13
[백준] 토마토  (0) 2021.06.13
[백준] 주식투자  (0) 2021.06.13

+ Recent posts