2024년 2월 6일
const fs = require("fs");
const input = fs
.readFileSync("/dev/stdin")
.toString()
.trim()
.split(" ")
.map(Number);
const [N, M] = input;
let selected = Array(M).fill(0);
let answer = "";
function dfs(depth) {
if (depth === M) {
return (answer += selected.join(" ") + "
");
}
for (let i = 1; i <= N; i++) {
selected[depth] = i;
dfs(depth + 1);
}
}
dfs(0);
console.log(answer);
여기서 중요한건 중복을 허용한다는 것이다. 방문처리 해줄 필요 없이 그냥 depth가 일치할때 값을 담아주었다.