๐ 08 - ์ค๋ณต์์ด ๊ตฌํ๊ธฐ
1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ์ ํ ๊ตฌ์ฌ์ด ์๋ค. ์ด ์ค ์ค๋ณต์ ํ๋ฝํ์ฌ M๋ฒ์ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
์
๋ ฅ์์
3 2
์ถ๋ ฅ์์
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
์ฌ๊ท๋ฅผ ์์ง ๋ชปํ๋ค๋ฉด ์ด์ค for ๋ฌธ(๋ฝ๋ ํ์ 2๋ฒ)์ ์ด์ฉํด ํ์์ ๊ฒ์ด๋ค. ๊ฒ๋ค๊ฐ ๋ค์ค for ๋ฌธ๊ณผ ์ฌ๊ท๋ ๊ฐ๋ค๊ณ ํด๋ ๋ฌด๋ฐฉํ๋ค. ํ์ง๋ง ์ ๋ ๊ฐ๋จํ ์ด์ค for ๋ฌธ์ ์ฌ์ฉํ์ง ์๊ณ ์ฌ๊ท๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ ๊น ํ๋ ์๋ฌธ์ด ์๊ธด๋ค..๐ค
for ๋ฌธ์ ์ด์ฉํ ๋ฐฉ๋ฒ
function solution(n) {
let answer = [];
for (let i = 1; i <= n; i++) {
for (let j = 1; j <= n; j++) {
answer.push([i, j]);
}
}
return answer;
}
console.log(solution(3));
์ด์ค for ๋ฌธ์ ์ด์ฉํด ํ์ด๋ณด์๋คโ ์คํํด๋ณด๋ฉด ์ฌ๊ท๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
ํ์ง๋ง ๋ฝ๋ ํ์๊ฐ 3๋ฒ์ด๋ผ๋ฉดโ
function solution(n) {
let answer = [];
for (let i = 1; i <= n; i++) {
for (let j = 1; j <= n; j++) {
for (let k = 1; k <= n; k++) {
answer.push([i, j, k]);
}
}
}
return answer;
}
console.log(solution(3));
๐ต ๋ฝ๋ ํ์๊ฐ ๋์ด๋ ์๋ก for ๋ฌธ๋ ๊ฐ์ด ๋์ด๋ ์ฝ๋ ์์ ์ด ํ์ํ๋ค. ์์ฃผ ์์ ์ด ํ์ํ ์ฝ๋๋ ์ข์ง ๋ชปํ ์ฝ๋์ด๋ค. ๋ฐ๋ฉด์ ์ฌ๊ท๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฌํ ๋ถํธํจ์ ํด๊ฒฐํ ์ ์๋ค.
๐ ์ฌ๊ท๋ฅผ ์ด์ฉํ ํ์ด ๋ฐฉ๋ฒ
์ฌ๊ท๋ฅผ ๋๋ฉด์ L(ํธ๋ฆฌ ๋ ๋ฒจ)์ด m(๋ฝ๋ ํ์)๊ณผ ๊ฐ๋ค๋ฉด ํ๋์ ๊ฒฝ์ฐ์ ์๊ฐ ์์ฑ๋ ๊ฒ์ด๋ฏ๋ก tmp๋ฅผ ์์ ๋ณต์ฌ(slice) ํ์ฌ answer ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค. tmp๋ฅผ answer ๋ฐฐ์ด์ ๋ฐ๋ก ์ถ๊ฐํ๋ฉด ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ๋ค์ด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฏ๋ก ๋ง์ง๋ง ๊ฐ์ธ [3, 3] ๊ฐ๋ง ์กด์ฌํ๊ฒ ๋๋ค.
function solution(n, m) {
let answer = [];
let tmp = Array.from({ length: m }, () => 0);
function DFS(L) {
if (L === m) {
answer.push(tmp.slice());
} else {
for (let i = 1; i <= n; i++) {
tmp[L] = i;
DFS(L + 1);
}
}
}
DFS(0);
return answer;
}
console.log(solution(3, 2));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 8] 10 - ์์ด ๊ตฌํ๊ธฐ (0) | 2022.11.06 |
---|---|
[JavaScript/section 8] 09 - ๋์ ๊ตํ (0) | 2022.11.05 |
[JavaScript/section 8] 07 - ์ต๋์ ์ ๊ตฌํ๊ธฐ (0) | 2022.10.26 |
[JavaScript/section 8] 06 - ๋ฐ๋์ด ์น์ฐจ (0) | 2022.10.25 |
[JavaScript/section 8] 05 - ํฉ์ด ๊ฐ์ ๋ถ๋ถ์งํฉ (0) | 2022.10.21 |