ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ค์ค for๋ฌธ๊ณผ ์ฌ๊ท์ ์ฐจ์ด]์ค๋ณต์์ด ๊ตฌํ๊ธฐ
choi95 2021. 8. 6. 19:22๋ฌธ์
1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ์ ํ ๊ตฌ์ฌ์ด ์์ต๋๋ค. ์ด ์ค ์ค๋ณต์ ํ๋ฝํ์ฌ M๋ฒ์ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํฉ๋๋ค.
๋ฌธ์ ํ์ด
๋ค์ค for๋ฌธ๊ณผ ์ฌ๊ท์ ์ฐจ์ด
ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํตํด DFS ํ์์ ํ๋ ๊ฒ์ ๋ค์ค for๋ฌธ์ ํ๋ ๊ฒ๊ณผ ์ ์ฒด์ ์ธ ๋์ ๋ฐฉ์์ด ๋๊ฐ๋ค.ํ์ง๋ง ์ ํด๋น ๋ฌธ์ ์์ ์ค๋ณต์์ด์ ๊ตฌํ ๋ ๋ค์ค for๋ฌธ์ด ์๋ ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ์ง๋ ๋ค์ ์ฝ๋๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
function solution(n , m) {
let answer = [];
for(let i = 1; i <= n; i++) {
for(let j = 1; j <= n; j++) {
console.log(i , j);
}
}
return answer;
}
console.log(solution(3, 2));
2๊ฐ์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์ค๋ณต์์ด์ ๊ตฌํ๊ธฐ 2์ค for๋ฌธ์ ์์ฑํ์๋ค.ํ์ฌ m์ 2์ด๊ธฐ ๋๋ฌธ์ 2์ค for๋ฌธ ๋ง์ผ๋ก๋ ๋ชจ๋ ์ค๋ณต์์ด ๊ฐ์ ๊ตฌํ ์ ์๋ค.
๊ทธ๋ฌ๋ ๋ง์ฝ์ ๋ฝ์์ผ ๋ ์กฐํฉ์ด 3์ผ ๊ฒฝ์ฐ์๋ 2์ค for๋ฌธ ๋ง์ผ๋ก๋ ๋ชจ๋ ์ค๋ณต์์ด ๊ฐ์ ๊ตฌํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ for๋ฌธ์ ํ๋ ๋์ถ๊ฐํ์ฌ 3์ค for๋ฌธ์ ํด์ผ ๋๋ค.
์ด๋ ๋ฏ ๋ค์ค for๋ฌธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ฃผ์ด์ง m์ ๊ฐ์ด ์ด๋ค์ง์ ๋ฐ๋ผ ์ํํด์ผ ๋๋ for๋ฌธ์ด ๊ฐ๋ณ์ ์ด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ๋งค์ฐ ๋นํฉ๋ฆฌ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ํํด์ผ ๋๋ ๋ฐ๋ณต๋ฌธ์ ์๊ฐ ๋ง์์ง๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋ ์์ผ๋ก๋ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค.
์ฝ๋
function solution(n , m) {
let answer = [];
let arr = Array.from({length: m}, () => 0);
function DFS(L) {
if(L === m) {
answer.push([...arr]); //๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์์ ๋ณต์ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์คํ๋ ๋ ๋ฌธ๋ฒ ์ฌ์ฉ, arr.slice()๋ ์ฌ์ฉ ๊ฐ๋ฅ
}
else {
for(let i = 1; i <= n; i++) {
arr[L] = i;
DFS(L + 1);
}
}
}
DFS(0);
return answer;
}
console.log(solution(3, 2));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ด ๊ตฌํ๊ธฐ (0) | 2021.08.07 |
---|---|
[DFS-Cut Edge]๋์ ๊ตํ (0) | 2021.08.06 |
[DFS]์ต๋ ์ ์ ๊ตฌํ๊ธฐ (0) | 2021.08.04 |
[DFS]ํฉ์ด ๊ฐ์ ๋ถ๋ถ์งํฉ (0) | 2021.07.30 |
[DFS]๋ถ๋ถ์งํฉ ๊ตฌํ๊ธฐ (0) | 2021.07.30 |