https://www.acmicpc.net/problem/1759
#include <iostream>
#include <algorithm>
using namespace std;
int L, C;
char alphabet[16];
void printPW(int index, int cnt, int mo, int ja, string s){
if(cnt==L){
if(mo>=1 && ja >=2){
cout<<s<<endl;
}
return;
}
//index가 끝나는 경우
if(index==C) return;
if(alphabet[index]=='a'||alphabet[index]=='e'||alphabet[index]=='i'||alphabet[index]=='o'||alphabet[index]=='u'){
//모음일 경우
printPW(index+1,cnt+1,mo+1,ja,s+alphabet[index]);
}else{
//자음일 경우
printPW(index+1,cnt+1,mo,ja+1,s+alphabet[index]);
}
//알파벳 선택 X
printPW(index+1,cnt,mo,ja,s);
}
int main(){
freopen("input.txt","r",stdin);
cin>>L>>C;
for(int i=0;i<C;i++){
cin>>alphabet[i];
}
sort(alphabet,alphabet+C);
printPW(0,0,0,0,"");
return 0;
}
'개발자 > algorithm' 카테고리의 다른 글
백준 1010번 : 다리 놓기 (c++) (0) | 2020.03.20 |
---|---|
2018 카카오 코딩테스트 1번 : 비밀지도 (c++) (0) | 2020.03.18 |
백준 1339번 : 단어 수학 (c++) (0) | 2020.03.10 |
백준 1920번 : 수 찾기 (c++ 시간 초과 해결) (0) | 2020.03.09 |
백준 9663번 : N-Queen (c++) (0) | 2020.03.08 |