문제설명

 

소스코드

#include <iostream>
using namespace std;
int main() {
    string input;
    cin >> input;
    while (true)
    {
        if ((input.find("nj") != string::npos) || (input.find("c=") != string::npos) || (input.find("c-") != string::npos) || (input.find("dz=") != string::npos) ||
            (input.find("d-") != string::npos) || (input.find("lj") != string::npos) || (input.find("s=") != string::npos) || (input.find("z=") != string::npos))
        {
            if (input.find("lj") != string::npos) input.replace(input.find("lj"), 2, "0");
            else if (input.find("nj") != string::npos) input.replace(input.find("nj"),2, "0");
            else if (input.find("c=") != string::npos) input.replace(input.find("c="), 2, "0");
            else if (input.find("c-") != string::npos) input.replace(input.find("c-"), 2, "0");
            else if (input.find("dz=") != string::npos) input.replace(input.find("dz="), 3, "0");
            else if (input.find("d-") != string::npos) input.replace(input.find("d-"), 2, "0");
            else if (input.find("s=") != string::npos) input.replace(input.find("s="), 2, "0");
            else if (input.find("z=") != string::npos) input.replace(input.find("z="), 2, "0");
        }
        else break;
    }
    cout << input.length() << endl;;
}

 

풀이

  • 문자열에 크로아티아 알파벳이 없을 때까지 루프를 돈다.
  • 크로아티아 알파벳이 있으면 해당 알파벳을 "0"으로 만들어서 1글자 취급한다.
  • 문자열의 길이를 출력한다.
string 내장 함수
input.find("문자열") : input에서 "문자열" 이있는 인덱스를 리턴함. "문자열"이 없으면 string::npos(쓰레기값)을 리턴
input.replace(n,m,"문자열") : n번째 인덱스부터 n+m까지 "문자열"로 바꿈