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

๋ฌธ์ œ

10์ดํ•˜์˜ N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ด ์ค‘ M๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œํ’€์ด

์ค‘๋ณต์„ ํ—ˆ๋ฝํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ฒดํฌ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ด์ „์— ์ฐธ์กฐํ–ˆ๋˜ value์ผ ๊ฒฝ์šฐ์—๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

 

์ฝ”๋“œ

function solution(m, arr) {
  let answer = [];
  let n = arr.length;
  let tmp = Array.from({length: m}, () => 0);
  let ch = Array.from({length: n}, () => 0);
  
  function DFS(L) {
    if(L === m) {
      answer.push(tmp.slice());
    }
    else {
      for(let i = 0; i < n; i++) {
        if(ch[i] === 0) { //์ด์ „์— ์ฐธ์กฐํ–ˆ๋˜ value์ผ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น ์—ฐ์‚ฐ ์‹คํ–‰
          tmp[L] = arr[i];
          ch[i] = 1; //์ฒดํฌ
          DFS(L + 1);
          ch[i] = 0; //ํ•˜๋‚˜์˜ ๊ฐ„์„ ์—์„œ์˜ ํƒ์ƒ‰์ด ๋๋‚ฌ๋‹ค๋ฉด ํ•ด๋‹น value์˜ ์ฒดํฌ๋ฅผ ํ’€์–ด์คŒ
        }
      }
    }
  }

  DFS(0);
  return answer;
}

console.log(solution(2, [3, 6, 9]));

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ