PS

2941. 크로아티아 알파벳

tose33 2021. 4. 6. 18:55

www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

다시 푼 문제.

 

#include <iostream>
#include <vector>
using namespace std;

int main() {
    string s;
    int cnt = 0;
    cin >> s;

    // 유일한 세글자인 "dz=" 는 제외
    vector<string> v = {"c=", "c-", "d-", "lj", "nj", "s=", "z="};

    // looping string s
    for(int i = 0; i < s.length(); i++) {
        // 유일한 세글자인 "dz="는 따로 계산.
        if(s[i] == 'd' && s[i+1] == 'z' && s[i+2] == '=') {
            cnt++;
            i += 2;
            continue;
        }
        // looping vector v
        bool trig = false;
        for(int j = 0; j < v.size(); j++) {
            if(s[i] == v[j][0] && s[i+1] == v[j][1]) {
                cnt++;
                i++;
                trig = true;
                break;
            }
        }
        if(!trig) cnt++; // vector에 해당 글자 없으면 한글자로 계산 
    }
    cout << cnt << endl;
}

 

string형 vector에 보기에 있는 글자들 넣어놓고, 루프 돌면서 같은 글자가 있는지 확인.

유일한 3글자 문자인 "dz=" 는 따로 처리.