728x90
질문게시판 다 뒤져보면서 온갖 반례는 다 넣어봤는데, 잘 된다!!
근데 왜 백준에서는 자꾸 틀렸습니다라고 뜨는지.. 정말 답답했다.
어떤 값을 넣었더니 틀렸는지 정도는 알려줄 수 있는거아니냐 백준..
나는 결국 다른 분 풀이 참고해서 풀었다.
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input=sc.nextLine();
String[] words={"c=","d-","dz=","c-","lj","s=","nj","z="};
for (int i=0; i<words.length; i++) {
if (input.contains(words[i])) {
input=input.replaceAll(words[i], "*");
}
}
System.out.println(input.length());
}
}
출처: https://mingbee.tistory.com/18
내가 했던 방법은 아래와 같은데, 뭐가 도대체 문제였던 건지 모르겠다.
혹시 Java11이 삼중조건을 못읽나? 싶어서 조건도 따로따로 설정해봐서 더 더러워진 결과물..
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] chars = sc.next().toCharArray();
String[] word = new String[chars.length];
for (int i=0; i<chars.length; i++){
word[i]=Character.toString(chars[i]);
}
int count=0;
for (int i=0; i<word.length; i++){
if (word[i].equals("=") && i>0){
if (word[i-1].equals("c")|| word[i-1].equals("s")){
word[i]="none";
word[i-1] = "none";
if (i>1 && word[i-2].equals("d")){
word[i-2]="none";
}
count++;
}
else if (word[i-1].equals("z")){
word[i]="none";
word[i-1] = "none";
if (i>1 && word[i-2].equals("d")){
word[i-2]="none";
}
count++;
}
}
else if (word[i].equals("-")&&i>0){
if (word[i-1].equals("c")|| word[i-1].equals("d")){
word[i] = "none";
word[i-1] = "none";
count++;
}
}
else if (word[i].equals("j")&&i>0){
if (word[i-1].equals("l")|| word[i-1].equals("n")){
word[i]="none";
word[i-1]="none";
count++;
}
}
}
for (int i=0; i<word.length; i++){
if (!word[i].equals("none") && !word[i].equals("=")){
if (!word[i].equals("-")) count++;
}
}
System.out.println(count);
}
}
728x90
'알고리즘' 카테고리의 다른 글
| 백준 1193 (Java) (0) | 2023.12.03 |
|---|---|
| 백준 2564 (Java) (1) | 2023.11.28 |
| 백준 25206 (Java) (1) | 2023.11.28 |
| 백준 1316 (Java) (0) | 2023.11.27 |
| 백준 1157 (Java) (0) | 2023.11.27 |