백준 2941번 크로아티아 알파벳

이상민·2023년 9월 4일
0

알고리즘

목록 보기
39/128
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Croatia_Alphabet {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int answer = 0;
        for (int i = 0; i < str.length(); i++) {
            String word="";
            if(i<str.length()-1)
                word = str.charAt(i)+""+str.charAt(i+1);
            else if(i==str.length()-1){
                answer++;
                break;
            }
            if(word.equals("c=")){
                answer++;
                i++;
            }
            else if(word.equals("c-")){
                answer++;
                i++;
            }
            else if(word.equals("dz")){
                if(i<str.length()-2&&str.charAt(i+2)=='='){
                    answer++;
                    i++;
                    i++;
                }
                else
                    answer++;
            }
            else if(word.equals("d-")){
                answer++;
                i++;
            }
            else if(word.equals("lj")){
                answer++;
                i++;
            }
            else if(word.equals("nj")){
                answer++;
                i++;
            }
            else if(word.equals("s=")){
                answer++;
                i++;
            }
            else if(word.equals("z=")){
                answer++;
                i++;
            }
            else
                answer++;
        }
        System.out.println(answer);
    }
}

풀이방법

  1. 문자를 두개씩 묶어서 크로아티아 단어인지 체크한다.(마지막 인덱스 제외)
  2. 마지막 인덱스는 따로 빼서 체크해준다.
  3. 크로아티아 단어라면 answer++하고 인덱스를 2개 증가시키고, 아니라면 answer++하고 인덱스를 1개 증가시킨다.
  4. 이때 크로아티아 단어중 "dz="는 3개짜리 단어인데, 이때만 따로 체크해 주는데 이때는 인덱스를 3개 증가시켜준다.(String 범위 밖으로 나가지 않게 주의)

후기

String 범위 밖으로 나가서 error가 나게 되는것을 주의하면서 풀어야한다.

profile
개린이

0개의 댓글