백트래킹 기본 문제
중복 불가이므로 isused 배열을 사용하여 사용중인지를 체크하였다
사전순 정렬은 어차피 1부터 증가시키며 넣어 완성하므로 신경쓰지 않아도 된다
https://www.acmicpc.net/problem/10974
let input;
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input = line;
readline.close();
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let n = Number(inp);
let arr = Array(n).fill(0);
let isused = Array(10).fill(false);
let ans = [];
let answer = [];
const bt = (k) => {
if (n === k) {
ans = arr.join(" ");
answer.push(ans);
} else {
for (let i = 1; i <= n; i++) {
if (!isused[i]) {
arr[k] = i;
isused[i] = true;
bt(k + 1);
isused[i] = false;
}
}
}
};
bt(0);
console.log(answer.join(" \n"));
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 11660/javascript] 구간 합 구하기 5 (0) | 2022.09.05 |
---|---|
[백준 1755/javascript] 숫자놀이 (0) | 2022.09.04 |
[백준 11656/javascript] 접미사 배열 (0) | 2022.09.02 |
[백준 2161/javascript] 카드 1 (0) | 2022.09.01 |
[백준 16499/javascript] 동일한 단어 그룹화하기 (0) | 2022.08.30 |
댓글