< [C++/백준 2941번] 크로아티아 알파벳

프로그래밍 공부/백준 (C++)

[C++/백준 2941번] 크로아티아 알파벳

Rocketbabydolls 2023. 7. 24. 21:30

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

#include <iostream>
#include <stack>
#include <string>
using namespace std;

int main() {
 
    string input;
    cin >> input;
    string tmp;

    int cro = 0;

    for(int i = 0 ; i < input.length(); i++)
    {
        if(i == input.length()-1)
        {
            cro++; 
            break;
        }
        else 
        {

            tmp = input.substr(i,2);
        }

       //cout << "  tmp : " << tmp << " ";

        if(tmp == "c=")
        {
            cro++;
         //   cout <<"found : c= ";
            i++;
        }
        else if(tmp == "c-")
        {
            cro++;
           // cout <<"found : c- ";
            i++;
        }
        else if(tmp == "d-")
        {
            cro++;
           // cout <<"found : d- ";
            i++;
        }
        else if(tmp == "lj")
        {
            cro++;
          //  cout <<"found : lj ";
          i++;
        }
        else if(tmp == "nj")
        {
            cro++;
           // cout <<"found : nj ";
          i++;
        }
        else if(tmp == "s=")
        {
            cro++;
          //  cout <<"found : s= ";
       i++;
        }
        else if(tmp == "z=")
        {
            cro++;
            //cout <<"found : z= ";
           i++;
        }
        else if(tmp == "dz")
        {
            if(input[i+2] == '=')
            {
                cro++;
                //cout <<"found : dz= ";
                i+=2;
            }
            else
            {
                cro++;
                cro++;
                i++;
            }
        } 
        else
        {
            cro++;
        }
    }
 

    cout << cro;

}

 

확인이 용이하게 디버깅용 출력이 있다.

 

substr을 사용하여 검사를 하였고,

dz= 을 판별할 때 dz 가 연속되면 판별이 안 되는 문제로 골머리를 앓았다.

나머지는 판별을 한 뒤 인덱스를 이동시키는 방법으로 풀었다.