알고리즘
백준 14405 피카츄
킨글
2024. 7. 22. 22:41
설명
replace 할 때에 S.replace("pi", "")와 같이 replace 되는 문자를 공백으로 처리했었는데, 틀리다고 나왔었다.
이유를 보니 kpia와 같이 문자가 있을 때에 pi가 replace되면서 ka 문자가 되었기 때문이다.
이렇게 되면 모두 replace가 되어 공백이라 YES가 나오게 된다. 정답은 NO가 나와야 한다.
그래서 *와 같이 임의의 문자로 치환한 후에 마지막에 "" 공백으로 처리했다.
각각 replace하고 싶지 않으면 replaceAll("pi|ka|chu", "")와 같이 한번에 처리해도 된다.
코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
// 14405
public static void main(String[] args) throws IOException {
process();
}
private static void process() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String S = br.readLine();
String result = S.replace("pi", "*")
.replace("ka", "*")
.replace("chu", "*")
.replace("*", "");
if(result.length() == 0) {
bw.write("YES");
} else {
bw.write("NO");
}
bw.flush();
bw.close();
}
}