백준 4659번 비밀번호 발음하기
문제에서 요구사항은
1. 모음 하나를 반드시 포함하여야한다.
2. 모듬 3개연속, 자음3개 연속은 false;
3. 같은 글자 2개연속 false 하지만 'e'와'o'는 괜찮다.
위에 3가지 요구사항을 해결하면 완성이다.
//1.모음 하나는 반드시 포함하여야 한다
function isVowel(idx) {
if (idx === "a" || idx === "e" || idx === "i" || idx === "o" || idx === "u") {
return true;
} else {
return false;
}
}
function solution(str) {
str.map((item) => {
if (item == "end") return;
let lcnt = 0,
vcnt = 0,
flag = 0,
is_inclue_v = 0,
prev = 0,
idx = "";
for (let i = 0; i < item.length; i++) {
idx = item[i];
if (isVowel(idx)) {
vcnt++;
lcnt = 0;
is_inclue_v = 1;
} else {
lcnt++;
vcnt = 0;
}
// 2. 3개 연속은 false
if (vcnt == 3 || lcnt == 3) flag = 1;
// 3. 같은 글자 2개 연속 false 하지만 e,o제외
if (i >= 1 && prev == idx && idx != "e" && idx != "o") flag = 1;
prev = idx;
}
if (is_inclue_v == 0) flag = 1;
if (flag) console.log(`<${item}> is not acceptable`);
else console.log(`<${item}> is acceptable`);
});
}
let str = [
"a",
"tv",
"ptoui",
"bontres",
"zoggax",
"wiinq",
"eep",
"houctuh",
"end",
];
solution(str);