1. 문제 : https://www.acmicpc.net/problem/10974
2. 문제 유형 : 백트래킹
3. 문제 티어 : 실버3
4. 문제 풀이
1) 백트래킹으로 푸는 전형적인 문제
2) N만큼 반복문 돌리면서 백트래킹 재귀 함수 호출 후
3) 이전 단계로 돌아가기 위해 visited와 current.pop() 해준다.
5. 문제 코드
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");
let N = Number(input[0]);
let visited = new Array(N+1).fill(false);
let arr = [];
// 재귀함수
function recursive(current, visited , n){
if(current.length === n){
console.log(current.join(" "));
return;
}
for(let i=1;i<=n;i++){
if(!visited[i]){
visited[i] = true;
current.push(i);
recursive(current, visited , n);
current.pop();
visited[i] = false;
}
}
}
recursive(arr,visited,N);
'코딩테스트 대비 > 백준 알고리즘' 카테고리의 다른 글
BOJ - 15650 N과 M(2) (1) | 2024.11.24 |
---|---|
BOJ - 7490 0 만들기 (0) | 2024.11.24 |
BOJ - 15649 N과 M(1) (0) | 2024.11.20 |
BOJ - 18353 병사 배치하기 (0) | 2024.11.20 |
BOJ - 10816 숫자 카드 2 (0) | 2024.11.17 |