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

๋ฌธ์ œ

 

๋ฌธ์ œํ’€์ด

์ธ์ ‘ํ–‰๋ ฌ

  • ์ธ์ ‘ ํ–‰๋ ฌ์€ ๊ทธ๋ž˜ํ”„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ์ด์ฐจ์› ๋ฐฐ์—ด๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹
  • arr[i][j]: ๋…ธ๋“œ i(ํ–‰)์—์„œ j(์—ด)๋กœ ๊ฐ€๋Š” ๊ฐ„์„ ์ด ์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0_๋‹จ๋ฐฉํ–ฅ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ

์ธ์ ‘ ํ–‰๋ ฌ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฌธ์ œ์—์„œ์˜ ๊ฒฝ๋กœ ๊ฒฝ์šฐ์ˆ˜์— ๋งŒ์กฑํ•˜๋Š” ์ธ์ ‘ ํ–‰๋ ฌ์„ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธ์ ‘ ํ–‰๋ ฌ

ํ–‰์„ ๊ธฐ์ค€์œผ๋กœ ์—ด๋กœ ์ด๋™ํ–ˆ์„ ๋•Œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๋ฉด 1์„, ์•„๋‹ˆ๋ฉด 0์„ ๋ฐฐ์—ด ๋‚ด์— ํ• ๋‹นํ•œ๋‹ค.

๊ฐ ํ–‰์€ ์ •์ (ํ˜„์žฌ ์žˆ๋Š” ์œ„์น˜), ๊ฐ ์—ด์€ ๋‹ค์Œ ํ–‰์„ ์ง€ ํ›„๋ณด๊ตฐ ์ด๋ผ๊ณ  ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฅผ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ๊นŠ์ด ํƒ์ƒ‰ ๊ณผ์ •์œผ๋กœ ๋ฐ”๊ฟ” ๊ทธ๋ ค ๋ณธ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

๊ฐ„์„  ์ด๋™์— ๋Œ€ํ•œ DFS ํƒ์ƒ‰

 

์ฝ”๋“œ

function solution(n, arr) {
  let answer = 0;
  let graph = Array.from(Array(n + 1), () => Array(n + 1).fill(0));
  let ch = Array.from({length: n + 1}, () => 0);

  for(let [a, b] of arr) {
      graph[a][b] = 1;
  }

  function DFS(v) {
    if(v === n) answer++;
    else {
      for(let i = 1; i <= n; i++) {
        if(graph[v][i] === 1 && ch[i] === 0) {
          ch[i] = 1;
          DFS(i);
          ch[i] = 0;
        }
      }
    }
  }

  ch[1] = 1; //1๋ฒˆ์„ ๊ธฐ์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ์ƒ‰ ์ „์— 1๋ฒˆ์€ ๊ฐ”๋‹ค ์˜จ ๊ฒฝ๋กœ๋กœ ์ฒดํฌํ•˜์—ฌ ์ค‘๋ณต์„ ๋ฐฉ์ง€
  DFS(1);

  return answer;
}

let arr = [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 5], [3, 4], [4, 2], [4, 5]]
console.log(solution(5, arr));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ