Solution#
Memo#
- 그냥 간단한 조합 구현 문제 2
- 조합은 그냥 구하고, valid 이후 출력해주는 정도
- 변수를 너무 난잡하게 써서 습관적으로 정리해야할 것 같다.
bool is_valid_password(vector<char> &chars) {
int vowel_count = 0;
int consonant_count = 0;
for (char c : chars) {
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
vowel_count++;
} else if (c >= 'a' && c <= 'z') {
consonant_count++;
}
}
return (consonant_count >= 2 && vowel_count >= 1);
}
void combination(vector<char> &characters, int idx, int level, vector<char> &tmp) {
if (level == plen) {
if (is_valid_password(tmp)) {
for (char c : tmp) {
cout << c;
}
cout << '\n';
}
return;
}
for (int i = idx; i < characters.size(); i++) {
tmp.push_back(characters[i]);
combination(characters, i + 1, level + 1, tmp);
tmp.pop_back();
}
}