2941번: 크로아티아 알파벳

Memo


로직 설명

unordered_set을 이용해서 속도 향상을 기대했지만, 단순하게 비교하는 코드가 훨씬 빠른것을 측정했기 때문에 수정했습니다. (약 2배 차이)

Code


제출 날짜

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);
}