알고리즘 문제 풀기

백준 15649 : N과 M(1) - javascript(백트래킹)

Fo_rdang 2024. 9. 21. 10:46
반응형

문제 출처 

https://www.acmicpc.net/problem/15649

 

정답 풀이  

흠, 사실 백트래킹을 연습하고 싶어서 풀었는데 

흔히 알고 있는 재귀를 활용한 순열 구하기 문제였다. 

 

정답 코드

const [n,m] = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(v => +v); 

function solution(n,m){
    let checked = new Array(n+1).fill(false); 
    function backTracking(L, total){
        if(L === m){
            console.log(total.slice(1))
            return; 
        }
        else{
            for(let i=1; i<=n; i++){
                if(!checked[i]){
                    checked[i] = true;
                    backTracking(L+1, total + ` ${i}`)
                    checked[i] = false; 
                }
            }
        }
    }
    backTracking(0, '')
}

solution(n,m)
반응형