728x90
구현 문제입니다.
3가지 조건을 신경써서 구현해주면 됩니다.
1. 모음을 한가지 이상 포함하기.
2. 모음 또는 자음이 3개 연속 오면 안됨.
3. 같은 글자가 연속해서 오면 안됨. 하지만 oo, ee는 가능
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
bool m; // 모음 1번 입력됬는지
bool check; // 이전 결과가 모음, 자음
bool flag; // 결과
bool con; // 이번 결과가 모음인지, 자음인지
int count; // 3연속
string s;
char pre;
char v[5] = { 'a', 'e', 'i', 'o', 'u' };
while (1) {
m = false;
flag = false;
check = false;
count = 0;
cin >> s;
if (s == "end") {
break;
}
for (int i = 0; i < s.length(); ++i) {
con = false;
if (i != 0) { // 3번 조건
if (s[i] == s[i - 1] && s[i] != 'e' && s[i] != 'o') {
flag = true;
break;
}
}
for (int j = 0; j < 5; ++j) {
if (s[i] == v[j]) {
if (check == false) {
count = 0;
}
m = true;
check = true;
con = true;
++count;
}
}
if (!con) {
if (check == true) {
count = 0;
}
check = false;
++count;
}
if (count == 3) { // 2번 조건
flag = true;
break;
}
if (flag) {
break;
}
}
if (!m) { // 1번 조건
flag = true;
}
if (flag) {
cout << "<" << s << "> is not acceptable." << endl;
}
else {
cout << "<" << s << "> is acceptable." << endl;
}
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 1855번 암호 (0) | 2019.11.05 |
---|---|
[C++] 백준 14710번 고장난 시계 (0) | 2019.11.05 |
[C++] 백준 1996번 지뢰 찾기 (0) | 2019.11.04 |
[C++] 백준 2160번 그림 비교 (0) | 2019.11.04 |
[C++] 백준 2804번 크로스워드 만들기 (0) | 2019.11.04 |