#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
bool checkfun(char *a, int L);
void permu(char *a, char *target, int start, int level, int L, int C);
bool compare(char a, char b)
{
return int(a) < int(b);
}
int main()
{
int L, C;
char alphabet[30] = {
0,
};
cin >> L >> C;
for (int i = 0; i < C; i++)
cin >> alphabet[i];
sort(alphabet, alphabet + C, compare);
char result[30] = {
""};
//for (int i = 0; i <= C - L; i++)
permu(alphabet, result, 0, 0, L, C);
}
bool checkfun(char *a, int L) //์ฃผ์ด์ง ๋ฌธ์์ด์ด ์ํธ์ผ ์ ์๋๊ฐ
{
int cnt_v = 0; //๋ชจ์๊ฐ์
int cnt_c = 0; //์์๊ฐ์
for (int i = 0; i < L; i++)
{
if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u')
cnt_v++;
else
cnt_c++;
}
if (cnt_v >= 1 &&cnt_c >= 2)
return true;
else
return false;
}
void permu(char *a, char *target, int start, int level, int L, int C)
{
if (level == L)
{
if (checkfun(target, L))
cout << target << "\n";
return;
}
for (int i = start; i < C - L + level + 1; i++)
{
target[level] = a[i];
// printf("ํ์ฌ ๋ฌธ์ : %c start : %d level : %d \n", target[level], start, level);
permu(a, target, i + 1, level + 1, L, C);
}
}
'๐ก๐ธ๐ธ๐ถ๐ฃ: ๐๐๐๐๐๐พ๐๐ฝ๐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ1003: ํผ๋ณด๋์น ํจ์(Silver 3) (0) | 2021.08.08 |
---|---|
BOJ1016 : ์ ๊ณฑใดใด์ (Gold 1) (0) | 2021.07.21 |
BOJ5576: ์ฝํ ์คํธ (Bronze 2) (0) | 2021.07.21 |
BOJ2628 : ์ข ์ด์๋ฅด๊ธฐ (Silver 5) (0) | 2021.07.21 |
BOJ2456 : ๋๋ ํ๊ธํ์ฅ์ด๋ค (Bronze1) (0) | 2021.07.21 |