2941 - 크로아티아 알파벳
2941 문제 링크
접근법
문제에서 크로아티아 알파벳과 변경된 입력방식이 주어지는데 다음과같다.
다음을 보면 알 수 있듯이 ‘=’ 문자는 항상 다른 알파벳과 같이쓰이며 ‘z=’는 앞에 d가 붙거나 안붙는 경우가 있다는 것을 알 수 있다. 이점을 이용하면 어떤 문자들이 엮여서 하나의 크로아티아 알파벳을 만드는지 알 수 있고 전체 문자에서 엮이는 것들을 하나씩 빼면 크로아티아 알파벳의 개수를 알 수 있다.
#include <iostream>
using namespace std;
int count = 0;
int main()
{
string croatia;
getline(cin, croatia);
for(int i=0; i<croatia.length(); i++)
{
count ++;
if(croatia[i] == '=' || croatia[i] == '-')
{
count--;
if(croatia[i-1] == 'z')
{
if(croatia[i-2] == 'd')
count--;
}
}
if(croatia[i] == 'j')
if(croatia[i-1] == 'l' || croatia[i-1] == 'n')
count--;
}
cout << count;
}
결론
모든 크로아티아 알파벳을 확인하는 것보다는 조금 더 효율적인 방법인것 같다.