Algorithm

[Algorithm] 백준_문자열 폭발_9935번 (JAVA)

dev_ajrqkq 2025. 4. 16. 12:20

📝문제

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

티어: 골드4

💡풀이

 

문제 유형

자료 구조 문자열 스택

 

걸린 시간

1시간

 

풀이 방법 도출

  1. StringBuilder sb에 입력 받은 문자를 하나씩 추가하고
  2. sb의 길이가 폭발문자열 길이와 같거나 길어지면 sb 마지막 문자들이 폭발 문자열과 같은지 비교한다.
  3. 만약 같다면 sb.delete로 삭제해주고
  4. sb가 빈값이라면 "FRULA"를, 빈값이 아니라면 sb를 그대로 반환해준다.
import java.util.*;
import java.io.*;
class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String bomb = br.readLine();

        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < str.length(); i++){
            sb.append(str.charAt(i));

            if(sb.length()-bomb.length() >= 0){
                int idx = 0;
                int cnt = 0;
                for(int j = sb.length()-bomb.length(); j < sb.length(); j++){
                    if(sb.charAt(j) == bomb.charAt(idx++)){
                        cnt++;
                    }
                }

                if(cnt == bomb.length()){
                    sb.delete(sb.length()-bomb.length(), sb.length());
                }
            }
        }

        System.out.println(sb.toString().isBlank() ? "FRULA" : sb);
    }
}

 

🤔Review

메모리 초과 때문에 애먹었다 

언제쯤 내 힘으로 효율적인 코드를 짤 수 있을까

댓글수0