🔒Algorithm
백준[node.js] > 15654번 N과 M (5)
devWarrior
2024. 12. 7. 15:08
문제
https://www.acmicpc.net/problem/15654
풀이
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let [N, M] = input
.shift()
.split(" ")
.map((n) => Number(n));
let num_arr = input[0].split(" ").map((n) => Number(n));
// 정렬
num_arr.sort((a, b) => a - b);
let dfs = (arr, picked) => {
if (arr.length === M) {
console.log(arr.join(" "));
return;
}
for (let i = 0; i < num_arr.length; ++i) {
if (!picked.includes(i)) {
arr.push(num_arr[i]);
picked.push(i);
dfs(arr, picked);
picked.pop();
arr.pop();
}
}
};
for (let i = 0; i < num_arr.length; ++i) {
dfs([num_arr[i]], [i]);
}