Vue/JavaScript 알고리즘
[JS 백준] 15649.N과 M (1)
힛해
2024. 1. 8. 09:12
728x90
https://www.acmicpc.net/problem/15649
15649번: N과 M (1)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
const filePath = process.platform === 'linux' ? '/dev/stdin' : 'Baekjoon/ST/input.txt';
const [n,m] = require("fs")
// .readFileSync(filePath)
.readFileSync(__dirname + "/input.txt")
.toString()
.trim().split(' ').map(v => +v)
let N = n;
let M = m;
const flag = new Array(N).fill(false);
let result = [];
const BT = (n,dept) =>{
if(dept === M){
console.log(result.join(' '));
return;
}
for(let i = 0; i < n; i++){
if(flag[i]===false){
flag[i] = true;
result.push(i+1);
BT(n,dept+1);
flag[i] = false;
result.pop();
}
}
}
BT(n,0);
pop 과 push를 사용해서 속도에서 문제가 있을거라 생각했지만
무리없이 통과했다.