Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 9] 04 - ์ด์ง„ํŠธ๋ฆฌ ๋„“์ด์šฐ์„ ํƒ์ƒ‰(BFS)

_์„ฑํ˜ธ_ 2022. 11. 21. 15:13
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 04 - ์ด์ง„ํŠธ๋ฆฌ ๋„“์ด์šฐ์„ ํƒ์ƒ‰(BFS)

์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๋„“์ด์šฐ์„ ํƒ์ƒ‰ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋„“์ด์šฐ์„ ํƒ์ƒ‰ : 1 2 3 4 5 6 7

์–ธ์ œ BFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€โ“ ์ถœ๋ฐœ ์ง€์ ์—์„œ ๋„์ฐฉ ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ

 

  • ๋…ธ๋“œ 1์ด ์ถœ๋ฐœ ์ง€์ ์ด๋ฏ€๋กœ ํ์— 1์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ํ๊ฐ€ ๋ชจ๋‘ ๋น„์›Œ์งˆ ๋•Œ ๊นŒ์ง€ while ๋ฌธ์„ ๋Œ๋ฉฐ ํ์—์„œ shift ํ•œ ๋…ธ๋“œ์™€ ๊ทผ์ ‘ํ•œ ๋…ธ๋“œ๊ฐ€ 7๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  • 7๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.
function solution() {
  let answer = '';
  let queue = [];
  queue.push(1);
  while (queue.length) {
    let v = queue.shift();
    answer += v + ' ';
    for (let nv of [v * 2, v * 2 + 1]) {
      if (nv > 7) continue;
      queue.push(nv);
    }
  }
  return answer;
}

console.log(solution());