반응형
https://www.acmicpc.net/problem/1759
주어진 문자를 정렬하고, 재귀로 가능성 있는 암호문을 구해주었습니다.
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 16
int l, c;
char ch[MAX], res[MAX];
bool isMo(char alp) {
return alp == 'a' || alp == 'e' || alp == 'i' || alp == 'o' || alp == 'u';
}
bool isJa(char alp) {
return !isMo(alp);
}
void f(int idx, int mo, int ja, int len) {
if (idx == c + 1) return;
if (len == l) {
if (mo > 0 && ja > 1) {
cout << res << "\n";
}
return;
}
res[len] = ch[idx];
f(idx + 1, mo + isMo(ch[idx]), ja + isJa(ch[idx]), len + 1);
f(idx + 1, mo, ja, len);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> l >> c;
for (int i = 0; i < c; i++) {
cin >> ch[i];
}
sort(ch, ch + c);
f(0, 0, 0, 0);
}
반응형
'Algorithm' 카테고리의 다른 글
백준 18222 : 투에-모스 문자열 (0) | 2021.11.19 |
---|---|
백준 22945 : 팀 빌딩 (0) | 2021.11.19 |
백준 14567 : 선수과목 (Prerequisite) (0) | 2021.11.19 |
백준 2581 : 소수 (0) | 2021.11.19 |
백준 1747 : 소수&팰린드롬 (0) | 2021.11.19 |