unordered_set을 이용해서 속도 향상을 기대했지만, 단순하게 비교하는 코드가 훨씬 빠른것을 측정했기 때문에 수정했습니다. (약 2배 차이)
2021/04/28
2020 KB
0 ms
#include <iostream>
#include <string>
std::string word;
int ans;
void io_faster()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
io_faster();
std::cin >> word;
}
void solve()
{
size_t i = -1;
while(++i < word.size())
{
if (i < word.size() - 1)
{
if ((word[i] == 'c' && (word[i+1] == '=' || word[i+1] == '-')))
i+=1;
else if ((word[i] == 'd' && (word[i+1] == '-')))
i+=1;
else if ((word[i+1] == 'j') && (word[i] == 'l' || word[i] == 'n'))
i+=1;
else if (i < word.size() - 2 && word[i] == 'd' && word[i+1] == 'z' && word[i+2] == '=')
i+=2;
else if ((word[i+1] == '=') && (word[i] == 's' || word[i] == 'z'))
i+=1;
}
ans++;
}
}
void print_val()
{
std::cout << ans << "\\n";
}
int main()
{
input();
solve();
print_val();
return (0);
}