처음 생각
처음에는 if 문을 사용해서 크로아티아 알파벳인지 여부를 확인하는 식으로 생각했는데
그냥 크로아티아 알파벳 6개를 다른 특수문자로 대체하고 난 후의 문자열 길이를 세는 간단한 방법을 이용해 풀었다
그런데 찾아보니 먼저 생각했던 대로 푸는 방법도 있어서 그 방법으로도 풀어보았다
내가 푼 방법
코드만 봐도 이해가 가서 설명은 굳이 하지않겠다!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sentence = br.readLine();
sentence= sentence.replace("c=", "*");
sentence=sentence.replace("c-", "*");
sentence=sentence.replace("dz=", "*");
sentence=sentence.replace("d-", "*");
sentence=sentence.replace("lj", "*");
sentence=sentence.replace("nj", "*");
sentence=sentence.replace("s=", "*");
sentence=sentence.replace("z=", "*");
System.out.println(sentence.length());
}
}
다른 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sentence = br.readLine();
int cnt = 0;
for(int i=0; i<sentence.length(); i++) {
if(sentence.charAt(i)=='c' && i<sentence.length()-1) {
if(sentence.charAt(i+1) == '=' || sentence.charAt(i+1) == '-') {
i++;
}
}
else if(sentence.charAt(i)=='d' && i<sentence.length()-1) {
if(sentence.charAt(i+1)=='-') {
i++;
}
else if(sentence.charAt(i+1)=='z' && i<sentence.length()-2) {
if(sentence.charAt(i+2)=='=') {
i+=2;
}
}
}
else if((sentence.charAt(i)=='l' || sentence.charAt(i)=='n') && i<sentence.length()-1) {
if(sentence.charAt(i+1)=='j') {
i++;
}
}
else if((sentence.charAt(i)=='s' || sentence.charAt(i)=='z') && i<sentence.length()-1) {
if(sentence.charAt(i+1)=='=') {
i++;
}
}
cnt++;
}
System.out.println(cnt);
}
}
++ 하다보니까 개인적으로 if 와 else if 를 구분해서 써야 정확한 결과가 나온다는 것을 다시 배웠다
그렇지 않으면 계속 틀렸다고 나온다!
'백준 풀이' 카테고리의 다른 글
[백준 풀이_Java] 9012 괄호 (실버4) (1) | 2023.11.13 |
---|---|
[백준 풀이_Java] 0000 약수구하기 (0) | 2021.11.01 |
[백준 풀이_Java] 2292 벌집 (0) | 2021.10.29 |
[백준 풀이_Java] 2875 대회 or 인턴 (0) | 2021.10.28 |
[백준 풀이_Java] 7568 덩치 (0) | 2021.10.28 |