알고리즘 분류
코드
#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;
}
}
}
![](https://velog.velcdn.com/images/kwt0124/post/8fad2bd0-fa68-4015-9444-0c97adf2389a/image.png)