4659번. 비밀번호 발음하기

phoenixKim·2022년 9월 1일
0

백준 알고리즘

목록 보기
95/174

알고리즘 분류

  • 문자열
  • 구현

코드

#include <iostream>
#include <vector>

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





// 4659번. 비밀번호 발음하기 
// 시작 : 19:14~~ 19:48

int main(void)
{
	// 모음 a,e,i,o,u 중에 반드시 하나는 있어야 함.
	// 모음이 3개 호근 자음이 3개 연속으로 오면 안됨.
	// 같은 글자가 연속으로 두번 오면 안되지만, ee, oo는 가능함.

	while (1)
	{
		string ss;
		cin >> ss;

		if (ss == "end")
			return 0;

		int moCnt = 0;
		int jaCnt = 0;

		int moCheck = 0;
		int jaCheck = 0;
		bool check = false;

		for (int i = 0; i < ss.length(); ++i)
		{
			// 같은 글자가 2번 오면 안됨.
			// but, ee와 oo는 허용함.
			if (i + 1 < ss.length())
			{
				if (ss[i] == ss[i + 1])
				{
					if (ss[i] == 'e' || ss[i] == 'o')
					{

					}
					else
					{
						//cout << "1" << endl;
						check = true;
						cout << "<" << ss << ">" << " is not acceptable." << endl;
						break;
					}					
				}				
			}

			if (ss[i] == 'a' || ss[i] == 'e'
				|| ss[i] == 'i' || ss[i] == 'o'
				|| ss[i] == 'u')
			{
				jaCheck = 0;
				moCnt++;
				moCheck++;

				if (moCheck >= 3)
				{
					//cout << "2" << endl;

					check = true;

					cout << "<" << ss << ">" << " is not acceptable." << endl;
					break;
				}

			}
			//자음일 경우
			else
			{
				moCheck = 0;
				jaCnt++;
				jaCheck++;

				if (jaCheck >= 3)
				{
					//cout << "3" << endl;

					check = true;
					cout << "<" << ss << ">" << " is not acceptable." << endl;
					break;
				}
			}


		}

		if (check == false && moCnt >= 1)
		{
			cout << "<" << ss  << ">" << " is acceptable." << endl;
		}
		else if (moCnt == 0 && check == false)
		{
			//cout << "hello" << endl;
			cout << "<" << ss << ">" << " is not acceptable." << endl;
		}
		

	}


}

profile
🔥🔥🔥

0개의 댓글

관련 채용 정보