[백준] 4659 비밀번호 발음하기

0

백준

목록 보기
230/271
post-thumbnail

[백준] 4659 비밀번호 발음하기

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	while (true) {
		string input;
		cin >> input;
		if (input == "end") break;

		bool acceptable = true;

		bool mIncluded = false; //모음이 포함되었는가
		int mSeq = 0; //연속으로 모음이 나타난 횟수
		int jSeq = 0; //연속으로 자음이 나타난 횟수

		int len = input.length();
		for (int i = 0; i < len; ++i) {
			if ((input[i] == 'a') || (input[i] == 'e') || (input[i] == 'i') || (input[i] == 'o') || (input[i] == 'u')) {
				mIncluded = true;
				mSeq++;
				jSeq = 0;
			}
			else {
				jSeq++;
				mSeq = 0;
			}
			//모음 3개 혹은 자음 3개 연속으로 온 경우
			if ((mSeq == 3) || (jSeq == 3)) {
				acceptable = false;
				break;
			}
			//같은 글자 연속적으로 두번 나오는 경우 검사
			if ((i + 1 < len)&&(input[i] == input[i + 1])){
				if ((input[i] == 'e') || (input[i] == 'o')) continue;
				acceptable = false;
				break;
			}
		}

		if (!mIncluded) acceptable = false;
		
		if (acceptable) {
			cout << "<" << input << "> is acceptable.\n";
		}
		else {
			cout << "<" << input << "> is not acceptable.\n";
		}
	}
	
	return 0;
}
profile
Be able to be vulnerable, in search of truth

0개의 댓글