Computer Science (CS)/알고리즘

[백준/Java] 2941번 크로아티아 알파벳

eune7 2023. 5. 11. 13:47
728x90
반응형

 

 

 

 

 

 

문제

 

 

 

정답 풀이

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int count = 0;

        for(int i = 0; i < str.length(); i++){
            char ch = str.charAt(i);

            if(ch == 'c' && i < str.length() -1){
                if(str.charAt(i+1) == '=' || str.charAt(i+1) == '-'){
                    count++;
                    i++;
                }
                else {
                    count++;
                }
            }

            else if(ch == 'd' && i < str.length() -1){
                if(str.charAt(i+1) == '-'){
                    count++;
                    i++;
                }
                else if(str.charAt(i+1) == 'z' && i < str.length() -2){
                    if(str.charAt(i+2) == '='){
                        count++;
                        i+=2;
                    }
                    else{
                        count++;
                    }
                }
                else{
                    count++;
                }
            }

            else if((ch == 'l' || ch == 'n') && i < str.length() -1){
                if(str.charAt(i+1) == 'j'){
                    count++;
                    i++;
                }
                else{
                    count++;
                }
            }

            else if((ch == 's' || ch == 'z') && i < str.length() -1){
                if(str.charAt(i+1) == '='){
                    count++;
                    i++;
                }
                else{
                    count++;
                }
            }

            else{
                count++;
            }
        }
        br.close();
        System.out.print(count);
    }
}
  • 메모리 14172KB
  • 시간 124ms

문자 하나하나 검색해주면서 count를 늘려줍니다.

str.length를 조건문에 달아준 이유는 만약 문자열 마지막에 c가 있을 경우

i+1을 하면 indexover(?) 에러가 나타나기 때문입니다!

 

else{count++}가 모든 if문에 있는 이유는

만약 c if문 안에 들어갔는데 그 다음 문자가 =나 -가 아닌 경우

c 하나를 count 해줘야 하기 때문입니다.

 

제가 설명을 잘 한건지 모르겠네요..ㅠ

편하게 댓글로 질문남겨주세요 :)

 

 

 

 

 

728x90
반응형