[1759] 암호 만들기

Worldi·2021년 2월 12일
0

알고리즘

목록 보기
7/59

n과 m의 응용 문제 인듯 하다.
될 수 있는 거 다 뽑고 ( 브루트 포스) ,check 함수로 확인!!

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<string>
#include<cstring>
#include<set>
#include<cstdlib>
#include<sstream>
using namespace std;


char temp[100];

int l, c;
char a[100];
bool check() {
	int mo = 0;
	int ja = 0;
	for (int i = 0; i < l; i++) {
		if (temp[i] == 'a' || temp[i] == 'e' || temp[i] == 'i' || temp[i] == 'o' || temp[i] == 'u') mo++;
		else ja++;
	
	}
	if (mo >= 1 && ja >= 2) return true;
	else 	return false;
};


void solve(int cnt , int selected ) {

	if (selected == l) {
		if (check()) {
			for (int i = 0; i < l; i++) {
				cout << temp[i];
			}cout << '\n';
		}
		return;
	}
	if (cnt >= c) return;
	temp[selected] = a[cnt];
	solve(cnt + 1, selected + 1);
	solve(cnt+1, selected);
	
}

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	
	cin >> l >> c;
	for (int i = 0; i < c; i++) {
		cin >> a[i];
	}
	sort(a, a + c);
	solve(0,0);
	return 0;
}
profile
https://worldi.tistory.com/ 로 블로그 이전합니다.

0개의 댓글