문제
제한사항
입출력 예
풀이
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let [n, m] = input.shift().split(' ').map(Number);
let str = input.shift().split(' ');
const solution = (n, str) => {
str.sort();
let answer = [];
let visited = new Array(str.length).fill(0);
let tmp = [];
const dfs = (index, count) => {
if (count === n) {
answer.push(tmp.join(''));
} else {
for (let i = index; i < str.length; i++) {
if (!visited[i]) {
visited[i] = 1;
tmp.push(str[i]);
dfs(i, tmp.length);
tmp.pop();
visited[i] = 0;
}
}
}
};
dfs(0, 0);
const moeum = ['a', 'e', 'i', 'u', 'o'];
let result = [];
for (let x of answer) {
let M = x.split('').filter((e) => moeum.includes(e)).length;
if (M >= 1 && x.length - M >= 2) {
result.push(x);
}
}
return result.join('\n');
};
console.log(solution(n, str));
- 조합구하기 문제이다.
- 조건 몇가지가 추가로 있다.