Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

지극히 개인적인 개발블로그

백준 알고리즘 2941: 크로아티아 알파벳 본문

알고리즘

백준 알고리즘 2941: 크로아티아 알파벳

코드분쇄기 2019. 9. 26. 18:35

 

너무 단순하게만 생각했을까요.

 if문으로 크로아티아 알파벳만 판별하면 될줄 알았는데 런타임에러가 뜨는군요

import java.util.Scanner;

public class Sol_2941 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String word = sc.next();
        char[] arr = word.toCharArray();
        int ans = arr.length;

        for(int i=0; i<word.length(); i++) {
            if (arr[i] == 'c' && arr[i + 1] == '=')
                ans -= 1;
            else if (arr[i] == 'c' && arr[i + 1] == '-')
                ans -= 1;
            else if (arr[i] == 'd' && arr[i + 1] == 'z' && arr[i + 2] == '=')
                ans -= 1;
            else if (arr[i] == 'd' && arr[i + 1] == '-')
                ans -= 1;
            else if (arr[i] == 'l' && arr[i + 1] == 'j')
                ans -= 1;
            else if (arr[i] == 'n' && arr[i + 1] == 'j')
                ans -= 1;
            else if (arr[i] == 's' && arr[i + 1] == '=')
                ans -= 1;
            else if (arr[i] == 'z' && arr[i + 1] == '=')
                ans -= 1;
        }

        System.out.println(ans);
    }
}

 

그래서 if문 자체를 싹 지워버렸습니다.

대신에 String메소드인 replace를 이용했습니다. 단어가 어떻게 바뀌는지는 중요하지 않습니다. 길이만 구하면 되니까요.

 

import java.util.Scanner;

public class Sol_2941 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String word = sc.next();
        String[] crotia = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

        for(int i=0; i<8; i++)
        {
            word = word.replace(crotia[i], "x");
        }

        System.out.println(word.length());
    }
}