HIT해

[JS 백준] 15649.N과 M (1) 본문

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를 사용해서 속도에서 문제가 있을거라 생각했지만

무리없이 통과했다.

'Vue > JavaScript 알고리즘' 카테고리의 다른 글

[JS 백준] 2667.단지번호붙이기  (0) 2024.01.10
[JS 백준] 9663. N-Queen  (0) 2024.01.09
[JS 백준] 11866.요세푸스 문제 0  (0) 2024.01.07
[JS 백준] 28279.덱 2  (0) 2024.01.07
[JS 백준] 9012.괄호  (0) 2024.01.07