<알고리즘 문제풀이&연습>/[C++] 백준

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

사용자 BlockDMask 2017. 10. 4. 13:40
반응형
  • 안녕하세요. BlockDMask 입니다.

  • 다들 즐추 하고 계시죠? 중간에 시간이 좀 떠서 문제를 풀어 보았습니다.

170814 문제 빼먹음 -> 171004 완료

0. 제목

  • 백준 2941 크로아티아 알파벳

  • BOJ 2941 크로아티아 알파벳

1. 문제 설명


이전 운영체제에서는 크로아티아 알파벳을 입력할 수 없었다고 한다.


아래 그림과 같이 크로아티아 알파벳을 변경해서 입력했습니다.


크로아티아 알파벳 

변경 

 č

 c=

 ć

 c- 

 dž

 dz=

 ñ

 d-

 lj

 lj

 nj

 nj

 š

 s=

 ž

 z=


이런식으로 바꾸어 사용합니다.


예를 들어, 


ljes=njak 는 크로아티아 알파벳 6개로(lj, e, š, nj, a, k)로 이루어져있다.


ddz=z= 는 크로아티아 알파벳 3개로(d, dz=, z=)로 이루어져있다.


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


최대 100글자의 단어가 입력으로 들어오고, 알파벳 소문자와 '-', '='로만 이루어져 있다.


2. 풀이 과정


문자열을 string으로 받아서


크로아티아 알파벳인 경우를 확인해서 넘긴다.


3. 코드


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//BOJ 2941 크로아티아 알파벳
//c=, c-, dz=, d-, lj, nj, s=, z=
 
#include<iostream>
#include<string>
 
using namespace std;
 
int solution(string& str){
    int count =0;
    for(int i=0; i<str.length(); i++){
        if(str[i] == 'c'){ //c인경우
            if(str[i+1== '=' || str[i+1== '-'){ //뒷글자 확인
                i++;
            }
        }else if(str[i] == 'd'){
 
            if(str[i+1== '-'){
                i++;
            }else if(str[i+1== 'z' && str[i+2== '='){
                i++;
                i++;
            }
 
        }else if(str[i] == 'l'){
 
            if(str[i+1== 'j'){
                i++;
            }
 
        }else if(str[i] == 'n'){
 
            if(str[i+1== 'j'){
                i++;
            }
 
        }else if(str[i] == 's'){
 
            if(str[i+1== '='){
                i++;
            }
 
 
        }else if(str[i] == 'z') {
 
            if (str[i + 1== '=') {
                i++;
            }
        }
        count++;
    }
    return count;
}
 
 
int main(void){
    string str;
    cin >> str;
 
    int result;
    result = solution(str);
 
    cout << result;
    return 0;
}
cs


4. 인증


문제 출처 - https://www.acmicpc.net/problem/2941

감사합니다. 하트 꾹 부탁드립니다.

반응형