ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ๊ตฌ์Šฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ์ค‘๋ณต์„ ํ—ˆ๋ฝํ•˜์—ฌ M๋ฒˆ์„ ๋ฝ‘์•„ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œํ’€์ด

ํŠธ๋ฆฌ DFS 

 

๋‹ค์ค‘ 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));

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ