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 가 연속되면 판별이 안 되는 문제로 골머리를 앓았다.
나머지는 판별을 한 뒤 인덱스를 이동시키는 방법으로 풀었다.
'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글
[C++/백준 2231번] 분해합 (0) | 2023.08.03 |
---|---|
[C++/백준 2745번] 진법 변환 (0) | 2023.07.27 |
[C++/백준 10988번] 팰린드롬인지 확인하기 (0) | 2023.07.24 |
[C++/백준 1152번] 단어의 개수 (0) | 2023.07.17 |
11057 : 오르막 수 (C) (0) | 2022.06.30 |