자바스크립트로 풀어본 백트래킹 문제이다
조건의 배열을 미리 오름차순으로 정렬하면 0번째 부터 채워나가는 백트래킹 시에
사전순으로 나열 가능하다
자리수가 모두 채워 질때마다 수들을 임시배열에 넣고 join 을 통해 공백을 주어 매 경우마다 출력하게 하였다
https://www.acmicpc.net/problem/15654
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let n = Number(inp[0][0]);
let m = Number(inp[0][2]);
let inparr = inp[1].split(" ").map((el) => Number(el));
let ar = new Array(10).fill(0);
let isused = new Array(10).fill(0);
inparr.sort((a, b) => a - b);
const bt = (k) => {
if (k === m) {
let temp = [];
for (let i = 0; i < m; i++) {
temp.push(ar[i]);
}
console.log(temp.join(" "));
return;
}
for (let i = 0; i < n; i++) {
let t = inparr[i];
if (!isused[t]) {
ar[k] = t;
isused[t] = 1;
bt(k + 1);
isused[t] = 0;
}
}
};
bt(0);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 11441/javascript] 합 구하기 (0) | 2022.08.25 |
---|---|
[백준 1026/javascript] 보물 (0) | 2022.08.24 |
[백준 13413/javascript] 오셀로 재배치 (0) | 2022.08.22 |
[백준 17413/javascript] 단어 뒤집기 2 (0) | 2022.08.21 |
[백준 11478/javascript] 서로 다른 부분 문자열의 개수 (0) | 2022.08.20 |
댓글