티스토리 뷰


keyword : 형변환, 문자, 문자열
difficulty : 실버5
completion : ✅
notice :


크로아티아 알파벳

📝 문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳
| 크로아티아알파벳 | 변경 |
|:---------------- |:---- |
| č | c= |
| ć | c- |
| dž | dz= |
| đ | d- |
| lj | lj |
| nj | nj |
| š | s= |
| ž |z= |

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

예제 입력 1

ljes=njak

예제 출력 1

6

예제 입력 2

ddz=z=

예제 출력 2

3

예제 입력 3

nljj

예제 출력 3

3

예제 입력 4

c=c=

예제 출력 4

2

예제 입력 5

dz=ak

예제 출력 5

3


🔍 정답

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 input = br.readLine();  

        String[] comp = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};  

        for (int i = 0; i < comp.length; i++) {  
            if (input.contains(comp[i])) {  
                input = input.replace(comp[i], "0");  
            }  
        }  
        char[] ch = input.toCharArray();  
        System.out.println(ch.length);  
    }  
}
  • 먼저 크로아티아 알파벳을 배열(comp)에 담아서 선언을 한다.
  • comp를 하나씩 돌면서 input에 포함되는지 확인을 하고 포함된다면 "0"으로 치환한다.
  • ljes=njak 의 경우 0e00ak가 될 것이고, c=c= 의 경우 00이 될 것이고, dz=ak는 0ak 가 될 것이다.
  • 그 후 바뀐 String을 문자배열에 넣은 후 배열의 길이를 세었다.
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   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
글 보관함