728x90

0. 주어진 문제 

문제

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

크로아티아 알파벳변경
čc=
ćc-
dz=
ñd-
ljlj
njnj
šs=
žz=

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

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

입력

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

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

출력

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



 1. 풀이


입력을 받은 후, 경우를 나눠 알파벳 수를 구하자.


 2. 소스코드


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
#include <iostream>
#include <string>
 
int main(void)
{
    std::string input;
    std::cin >> input;
    int count(0);
 
    for (int t = 0; t < input.length(); t++)
    {
        if (input[t] == '=' || input[t] == '-') {
            count++;
            if (input[t - 1== 'z'&&input[t - 2== 'd') {
                count++;
            }
        }
        else if (input[t] == 'l'&&input[t+1]=='j') {
            count++;
        }
        else if (input[t] == 'n'&&input[t + 1== 'j') {
            count++;
        }
        
    }
 
    std::cout << input.size()-count << '\n';
}
cs


 3. 문제 출처


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


 4. 참고





'<백준> > |c++| easy' 카테고리의 다른 글

백준 1193 - 분수찾기  (0) 2019.02.19
백준 2292 - 벌집  (0) 2019.02.19
백준 5622 - 다이얼(for문을 단축시키자)  (0) 2019.02.18
백준 2908 - 상수  (0) 2019.02.18
백준 2675 - 문자열 반복  (0) 2019.02.16

+ Recent posts