2022. 1. 18. 08:17ㆍ알고리즘/백준
문제
버그 투성이 프로그램을 잘 만드는 백준이는 버그를 찾는 프로그램을 만들었다.
이 프로그램은 프로그램의 소스 코드를 입력으로 받은 뒤, 버그를 발견하면 해당 부분을 주석처리해준다.
하지만, 버그를 찾는 프로그램도 백준이가 작성했기 때문에 버그가 있다. 바로, 주석처리하는 대신에 그 부분을 BUG로 바꿔버린다.
버그 찾는 프로그램이 처리한 결과가 주어졌을 때, BUG를 모두 없애는 프로그램을 작성하시오.
입력
입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 개수는 따로 제한을 두지 않는다.
출력
입력으로 주어진 소스 코드의 BUG를 모두 제거한 뒤 출력한다. 출력하는 소스 코드에는 BUG가 있으면 안 된다. 즉, ABUBUGGB와 같은 경우는 AB가 되어야 한다.
예제입력1
print "No bugs here..."
void hello() {
BUGBUG
printfBUG("Hello, world!\n");
}
wriBUGBUGtelBUGn("Hello B-U-G");
예제출력1
print "No bugs here..."
void hello() {
printf("Hello, world!\n");
}
writeln("Hello B-U-G");
문제풀이
import java.io.*;
interface Main{
static void main(String[]a) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "";
String regex = ".*BUG.*";
while((str = br.readLine()) != null){
while(str.matches(regex)) {
str = str.replaceAll("BUG", "");
}
bw.write(str);
bw.newLine();
}
bw.flush();
}
}
BUG라는 단어가 있으면 제거하는 문제입니다.
한 문장에서 BUG를 제거했는데 남은 단어가 BUG로 조합될 경우도 제거해야 합니다.
그러므로 반복문 안에 반복문을 하나 더 넣어서 정규식에 매치가 될 경우 계속해서 BUG 단어를 제거하도록 하였습니다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14405번 피카츄 Java 문제 풀이 (0) | 2022.01.18 |
---|---|
[백준] 2954번 창영이의 일기장 Java 문제 풀이 (0) | 2022.01.18 |
[백준] 2929번 머신 코드 Java 문제 풀이 (0) | 2022.01.17 |
[백준] 1264번 모음의 개수 Java 문제 풀이 (0) | 2022.01.17 |
[백준] 15881번 Pen Pineapple Apple Pen Java 문제 풀이 (0) | 2022.01.17 |