[BOJ] 9935 문자열 폭발

SSOYEONG·2022년 4월 8일
0

Problem Solving

목록 보기
15/60
post-thumbnail

🔗 Problem

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

👩‍💻 Code

package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

// 문자열 폭발

public class BJ9935 {
	
	static String str;
	static String exp;
	static int strLen;
	static int expLen;

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		str = br.readLine();
		exp = br.readLine();
		strLen = str.length();
		expLen = exp.length();
		
		
		StringBuilder sb = new StringBuilder();
		
		for(int i = 0; i < strLen; i++) {
			
			sb.append(str.charAt(i));
			if(sb.length() >= exp.length()) {
				if(sb.substring(sb.length() - expLen, sb.length()).equals(exp)) {		// sb의 뒤에서부터 expLen개 문자 가져와서, exp와 비교
					sb.delete(sb.length() - expLen, sb.length());
				}
			}
			
		}
		
		if(sb.length() == 0) {
			sb.append("FRULA");
		}
		System.out.println(sb.toString());
	}
}

📌 Note

아이디어

  • StringBuilder or Stack을 사용해야 시간초과가 발생하지 않는다.

틀렸습니다

  • 처음에 폭발 문자열 자체가 아닌 폭발 문자열 안 문자로 해석하여 아예 구현을 잘못하였다.
profile
Übermensch

0개의 댓글