ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [java] 백준 알고리즘 2941번 크로아티아 알파벳 풀이
    알고리즘/백준 알고리즘 2018. 5. 25. 14:44



    글씨들을 걸러야 할 것 같은데 


    어떻게 처리할지 생각해봤다.


    일단 모든 알파벳에 대해 한글자씩 추가하고, 크로아티아 알파벳으로 해당되는 문자는 하나의 알파벳으로 고려하니까


    그만큼 빼주면 되겠다고 생각했다. 



    1. 특수문자 '-'가 붙는 글자가 나오면 앞에 어떠한 알파벳이든 


    앞의 알파벳과 함께 크로아티아 알파벳이 되므로


    특수문자 '-'로 추가된 +1을 다시 -1을 해준다.



    2. 특수문자 '='가 붙는 것은 기본적으로 어떠한 알파벳이 앞에 와도 크로아티아 알파벳이 되므로


    -1을 해준다.


    그러나, 'dz=' 의 경우는 3개의 문자가 1개의 문자로 취급하므로 -2가 되어야한다.



    3. 'nj' 와 'lj'의 경우, 하나의 크로아티아 알파벳이므로 -1을 해준다.




    * 풀이 소스


    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public class Baekjoon2941 {
     
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            
            String word = br.readLine();
            int alphabetCount =0;
            
            for(int i=0; i<word.length(); i++) {
                alphabetCount++;
                
                if(word.charAt(i) == 45) { // 특수문자 '-'가 붙을 경우,
                    alphabetCount -= 1;
                    
                }else if(word.charAt(i) == 61) { // 특수문자 '='가 붙을 경우,
                    alphabetCount -= 1;
                    
                    /* 특수문자 '='가 붙고 앞에서 dz가 붙는 즉, 'dz=' 문자의 경우, */
                    if(String.valueOf(word.charAt(i-1)).equals("z"&& String.valueOf(word.charAt(i-2)).equals("d")) {
                        alphabetCount -= 1;
                    }    
                    
                    /* 'lj'와'nj'의 경우, */
                }else if(String.valueOf(word.charAt(i)).equals("j"&& 
                        (String.valueOf(word.charAt(i-1)).equals("l"|| String.valueOf(word.charAt(i-1)).equals("n") )){
                    alphabetCount -= 1;
                }
                    
            }
            bw.write(String.valueOf(alphabetCount));
            bw.flush();
                
        }
     
    }
     
     
     
    cs



Designed by Tistory.