Algorithm
[Algorithm] 백준_문자열 폭발_9935번 (JAVA)
dev_ajrqkq
2025. 4. 16. 12:20
📝문제
https://www.acmicpc.net/problem/9935
티어: 골드4
💡풀이
문제 유형
자료 구조 문자열 스택
걸린 시간
1시간
풀이 방법 도출
- StringBuilder sb에 입력 받은 문자를 하나씩 추가하고
- sb의 길이가 폭발문자열 길이와 같거나 길어지면 sb 마지막 문자들이 폭발 문자열과 같은지 비교한다.
- 만약 같다면 sb.delete로 삭제해주고
- 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
메모리 초과 때문에 애먹었다
언제쯤 내 힘으로 효율적인 코드를 짤 수 있을까