본문 바로가기
백준

[백준] 2941번 : 크로아티아 알파벳 – JAVA [자바]

by Hongwoo 2022. 7. 11.
반응형

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2941번 크로아티아 알파벳은 실버 5 난이도의 구현 및 문자열 문제이다. 이 문제에서는 입력으로 단어 s가 주어진다. 그리고 이 단어에 크로아티아 알파벳이 총 몇 개인지를 출력해주면 되는 문제이다.

 

이 문제에서 표에 크로아티아 알파벳 6개가 나와있다. c=, c-, dz=, d-, lj, nj, s=, z= 그리고 나머지 일반 알파벳들이 다 크로아티아 알파벳들이다. 따라서 주어지는 문자열에서 이 6개의 크로아티아 알파벳과 일반 알파벳이 총 몇 개 있는지를 출력해주면 간단한 문제이다.

 

이 문제는 간단한 for-loop으로 풀 수 있다. 일단 크로아티아 알파벳 개수를 세기 위해 int형 변수 count를 선언한다. 그리고 for-loop은 i = 0부터 i < s.length()만큼 돌리고 6개의 경우와 일반 알파벳일 경우에 count를 1씩 증가시켜준다. 그리고 마지막에 count만 출력해주면 끝난다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int count = 0;
        for (int i = 0; i < s.length(); i++) {
            count++;
            if (s.charAt(i) == 'c') {
                //c=와 c- 체크
                if (i < s.length()-1 && (s.charAt(i+1) == '-' || s.charAt(i+1) == '=')) {
                    i++;
                }
            }
            else if (s.charAt(i) == 'd') {
                //d- 체크
                if (i < s.length()-1 && s.charAt(i+1) == '-') {
                    i++;
                } else if (i < s.length()-2 && s.substring(i,i+3).equals("dz=")) {
                    //dz= 체크
                    i += 2;
                }
            }
            //lj 체크
            else if (s.charAt(i) =='l') {
                if (i <s.length()-1 && s.charAt(i+1) == 'j') {
                    i++;
                }
            }
            //nj 체크
            else if (s.charAt(i) =='n') {
                if (i <s.length()-1 && s.charAt(i+1) == 'j') {
                    i++;
                }
            }
            //s= 체크
            else if (s.charAt(i) =='s') {
                if (i <s.length()-1 && s.charAt(i+1) == '=') {
                    i++;
                }
            }
            //z= 체크
            else if (s.charAt(i) =='z') {
                if (i <s.length()-1 && s.charAt(i+1) == '=') {
                    i++;
                }
            }
        }
        System.out.print(count);
    }
}

 

 

반응형

댓글