문제 원본 : 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();
}
}
- 한 글자씩 반복문을 돌면서 해당 글자가 폭탄의 마지막 글자와 같으면
- 폭탄의 길이만큼 끝에 있는 문자열을 비교해서 폭탄이면 제거한다.
'알고리즘 > BOJ' 카테고리의 다른 글
| [BOJ] 2075. N번째 큰 수 (0) | 2022.04.23 |
|---|---|
| [BOJ] 5052. 전화번호 목록 (0) | 2022.04.22 |
| [BOJ] 17413. 단어 뒤집기 2 (0) | 2022.04.20 |
| [BOJ] 1051. 숫자 정사각형 (0) | 2022.04.10 |
| [BOJ] 3273. 두 수의 합 (0) | 2022.04.09 |