본문 바로가기
코딩공부/백준 (java)

[백준 2941] 크로아티아 알파벳 (java)

by CodingKwon 2021. 7. 17.

문제 링크

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

나의 코드 (java)

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 s = br.readLine();
        // 카운팅 할 변수
        int cnt = 0;

        for (int i=0; i<s.length(); i++){
            // 단어를 받을 변수
            char ch1 = s.charAt(i);

            if (ch1 == 'c'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == '='){
                        i++; // 'c='일 경우
                    } else if (s.charAt(i+1) == '-'){
                        i++; // 'c-'일 경우
                    }
                }
            }

            if (ch1 == 'd'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == '-'){
                        i++; // 'd-'일 경우
                    } else if (s.charAt(i+1) == 'z'){
                        if (i+2 < s.length()){
                            if (s.charAt(i+2) == '='){
                                i += 2; // 'dz='일 경우
                            }
                        }
                    }
                }
            }

            if (ch1 == 'l'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == 'j'){
                        i++; // 'lj'일 경우
                    }
                }
            }

            if (ch1 == 'n'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == 'j'){
                        i++; // 'nj'일 경우
                    }
                }
            }

            if (ch1 == 's'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == '='){
                        i++; // 's='일 경우
                    }
                }
            }

            if (ch1 == 'z'){
                if (i+1 < s.length()){
                    if (s.charAt(i+1) == '='){
                        i++; // 'z='일 경우
                    }
                }
            }

            // 카운팅
            cnt++;
        }

        // 결과 출력
        System.out.println(cnt);
    }
}

 

for문을 돌면서 if문을 통해서 단어를 하나씩 검증합니다.

if문을 통해서 c, d, l, n, s, z로 시작하게 되면 다음 오는 단어를 검증합니다.

for문을 하나 돌 때마다 cnt를 하나씩 올려서 단어를 카운팅 하는데 c, d, l, n, s, z 다음에 단어를 검증하며 크로아티아 알파벳이면 i++를 하여 두 개 단어를 하나의 단어로 카운팅 합니다. 'dz='라면 3개를 한 단어로 카운팅 하기 때문에 i+=2를 하여 3개를 1개로 카운팅 합니다.

 

댓글