티스토리 뷰

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

이 문제는 크로아티아 알파벳이 포함된 문자열에서 단어의 개수를 구하는 문제입니다. 다음과 같은 방식으로 문제를 해결하였습니다.

 

1. 주어진 문자열이 알파벳 중 하나로 시작하는지 확인합니다.

2-1. 문자열이 크로아티아 알파벳으로 시작하는 경우, 크로아티아 문자열을 제외한 뒷 문자열만 다시 입력 문자열에 저장합니다.

2-2. 문자열이 크로아티아 알파벳으로 시작하지 않는 경우, 가장 앞의 한 문자를 제외한 나머지 문자열을 다시 입력 문자열에 저장합니다.

3. 단어 개수를 하나 증가시킵니다.

4. 1부터 3까지 주어진 문자열의 길이가 0이 아닐 때까지 반복합니다.

5. 반복이 종료되면 단어의 개수를 출력합니다.

 

자바 코드는 다음과 같습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        // 크로아티아 알파벳
        String[] croatiaAlphabet = new String[]{"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();

        int answer = 0;

        // 주어진 문자열의 길이가 0이 아닐 동안 반복
        while (input.length() != 0) {
            // 크로아티아 알파벳으로 시작하는지 여부
            boolean startWithCroatiaAlphabet = false;

            // 크로아티아 알파벳을 하나씩 가져와서
            for (String croAlpha : croatiaAlphabet) {
                // 주어진 문자열이 크로아티아 알파벳으로 시작하는 경우
                if (input.startsWith(croAlpha)) {
                    input = input.substring(croAlpha.length());  // 크로아티아 알파벳만큼 제거하고 남은 문자열을 입력 문자열에 저장
                    startWithCroatiaAlphabet = true;  // 크로아티아 문자열로 시작하므로 true
                    break;
                }
            }

            // 주어진 문자열이 크로아티아 알파벳으로 시작하지 않는 경우
            if (!startWithCroatiaAlphabet) {
                input = input.substring(1);  // 맨 앞 한 문자를 제외하고 다시 문자열에 저장
            }

            answer++;  // 한 문자를 찾았으므로 증가
        }

        // 최종 단어의 개수 출력
        System.out.println(answer);
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함