1759-암호만들기
int pwLen, alphaLen;
char alpha[15];
bool isSatisfyPwCondition(string pw) {
bool isMo = false;
int jaCount = 0;
for(int i = 0; i<pw.length(); i++){
if(pw[i] == 'a' || pw[i] == 'e' || pw[i] == 'i' || pw[i] == 'o' || pw[i] == 'u') {
isMo = true;
} else {
jaCount += 1;
}
}
if(isMo && jaCount >= 2) {
return true;
}
return false;
}
// task
// 하나씩 선택하며 붙이기
void appendAlpha(int index, string pw) {
if(index > alphaLen) {
return;
} else if (pw.length() == pwLen) {
// 조건에 부합하면 춫력
if(isSatisfyPwCondition(pw)) {
cout<<pw<<endl;
}
return;
}
appendAlpha(index + 1, pw+alpha[index]);
appendAlpha(index + 1, pw);
}
int main(int argc, const char * argv[]) {
cin>>pwLen>>alphaLen;
for(int i = 0; i<alphaLen; i++){
cin>>alpha[i];
}
sort(alpha, alpha+alphaLen);
appendAlpha(0, "");
return 0;
}boj 풀이
review
Last updated
Was this helpful?