๋ฐ์ํ
๋ด ํ์ด
const fs = require('fs');
let [n, m] = (fs.readFileSync('./dev/stdin') + '').toString().trim().split(' ');
let ans = [];
let visit = new Array(parseInt(n)).fill(false);
const back = (d, n, m) => {
// m๊ฐ์ ์์๊น์ง ์ฐผ๋์ง ํ์ธ
if (d === m) {
console.log(...ans);
return;
}
for (let i = 0; i < n; i++) {
if (!visit[i]) {
visit[i] = true;
ans.push(i + 1);
back(d + 1, n, m);
ans.pop();
visit[i] = false;
}
}
};
back(0, parseInt(n), parseInt(m));
์ฌ์ค ์ด๋ฒ ๋ฌธ์ ๋ ๋ฐฑํธ๋ํน ๋ฌธ์ ์ธ๊ฒ์ด ํ์ ๋์ ๊ธฐ์กด์ ํ์๋ ๐ ํ์ด์ฌ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์ดํ๋ค.
n๊ฐ์ ์์๋ฅผ ๊ฐ์ง visit์ด๋ผ๋ boolean flag๋ฅผ ๋ง๋ค์ด
๊ฐ ์์์ ๋ด๋ถ๋ก ๋ ๋ ๋ณธ์ธ์ ๊ฐ์ ๊ฐ์ ธ์ค์ง ์๋๋ก ํ๋ค.
์์ ์ดํด๋ณด๊ธฐ
์ค์ console ์ ์ฐ์ด ์์ธํ ์ดํด๋ณด๋ฉด ๊ฐ์ฅ ๋ฐ๊นฅ ์๋ฅผ ๋ฐฉ๋ฌธ ์๋ฃ๋ก ๊ฑธ์ด๋๊ณ
๊ทธ ๋ด๋ถ์์ ans๊ฐ m๊ฐ๊ฐ ๋ ๋๊น์ง ๊ณ์ ๋๊ฒ ๋๋ค.
d === m ์ด๋๋ฉด ๋ค ์ฐฌ ans์ ๊ฐ์ ์ถ๋ ฅํ ํ , return ํด์ ๋์ค๊ณ
์ด์ ์ ๋๋ for๋ฌธ์ผ๋ก ๋์๊ฐ ๋ง์ ๋๊ฒ ๋๋ค.
4,2 ์ ๋ ฅ ์
const fs = require('fs');
let [n, m] = (fs.readFileSync('./dev/stdin') + '').toString().trim().split(' ');
let ans = [];
let visit = new Array(parseInt(n)).fill(false);
const back = (d, n, m) => {
console.log(d, n, m, '****************');
if (d === m) {
console.log(...ans);
returnl
}
for (let i = 0; i < n; i++) {
console.log('i:', i, 'visit:', visit, 'ans:', ans);
if (!visit[i]) {
visit[i] = true;
ans.push(i + 1);
back(d + 1, n, m);
ans.pop();
visit[i] = false;
}
}
};
back(0, parseInt(n), parseInt(m));
'๐ ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] node.js/ 1748_ ์ ์ด์ด์ฐ๊ธฐ(1) (0) | 2021.10.22 |
---|---|
[๋ฐฑ์ค] node.js/ 15650 N๊ณผM(2) (0) | 2021.10.21 |
[๋ฐฑ์ค] node.js/ 1302 ๋ฒ ์คํธ์ ๋ฌ (0) | 2021.10.19 |
[๋ฐฑ์ค] node.js/ 10866 ๋ฑ (0) | 2021.10.18 |
[๋ฐฑ์ค] node.js/ 10828 ์คํ (0) | 2021.10.15 |
๋๊ธ