알고리즘/BOJ
[BOJ] 9935. 문자열 폭발
재담
2022. 4. 21. 23:38
문제 원본 : https://www.acmicpc.net/problem/9935
9935번: 문자열 폭발
첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모
www.acmicpc.net
import java.io.*;
public class Main {
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 s = br.readLine();
String bomb = br.readLine();
StringBuilder builder = new StringBuilder();
int sLen = s.length();
int bombLen = bomb.length();
for (int i = 0; i < sLen; ++i) {
char ch = s.charAt(i);
builder.append(ch);
boolean isBomb = true;
if (ch == bomb.charAt(bombLen - 1) && builder.length() >= bombLen) {
for (int j = builder.length() - bombLen, k = 0; j < builder.length(); ++j, ++k) {
if (builder.charAt(j) != bomb.charAt(k)) {
isBomb = false;
break;
}
}
if (isBomb) {
builder.replace(builder.length() - bombLen, builder.length(), "");
}
}
}
if (builder.length() > 0) {
bw.write(builder.toString());
} else {
bw.write("FRULA");
}
bw.close();
br.close();
}
}
- 한 글자씩 반복문을 돌면서 해당 글자가 폭탄의 마지막 글자와 같으면
- 폭탄의 길이만큼 끝에 있는 문자열을 비교해서 폭탄이면 제거한다.