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

๋ฌธ์ œ

์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ์ „์œ„์ˆœํšŒ, ์ค‘์œ„์ˆœํšŒ, ํ›„์œ„์ˆœํšŒ๋ฅผ ๋ˆ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”.

๊ฐœ๋…

ํŠธ๋ฆฌ(Tree)

  • ๋…ธ๋“œ(node)๋กœ ์ด๋ฃจ์–ด์ง„ ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ
  • ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ(root) ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ
  • ๋ฃจํŠธ ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ
  • ๊ทธ ์ž์‹ ๋˜ํ•œ 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ , ์ด๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์ •์˜
  • ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)๋“ค๋กœ ๊ตฌ์„ฑ

  • ๋ฃจํŠธ ๋…ธ๋“œ(root node): ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ, ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ์„ ๊ฐ€์ง
  • ๋‹จ๋ง ๋…ธ๋“œ(leaf node): ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ, '๋ง๋‹จ ๋…ธ๋“œ' ๋˜๋Š” '์žŽ ๋…ธ๋“œ' ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ
  • ๋‚ด๋ถ€ ๋…ธ๋“œ(internal node): ๋‹จ๋ง ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ
  • ๊ฐ„์„ (edge): ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ (link, branch ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
  • ํ˜•์ œ(sibling): ๊ฐ™์€ ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ
  • ๋…ธ๋“œ์˜ ํฌ๊ธฐ(size): ์ž์‹ ์„ ํฌํ•จํ•œ ๋ชจ๋“  ์ž์† ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜
  • ๋…ธ๋“œ์˜ ๊นŠ์ด(depth): ๋ฃจํŠธ์—์„œ ์–ด๋–ค ๋…ธ๋“œ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๊ฐ„์„ ์˜ ์ˆ˜
  • ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ(level): ํŠธ๋ฆฌ์˜ ํŠน์ • ๊นŠ์ด๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ
  • ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜(degree): ํ•˜์œ„ ํŠธ๋ฆฌ ๊ฐœ์ˆ˜ / ๊ฐ„์„  ์ˆ˜: ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ง€๋‹Œ ๊ฐ€์ง€์˜ ๊ฐœ์ˆ˜
  • ํŠธ๋ฆฌ์˜ ์ฐจ์ˆ˜(degree of tree): ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ์ฐจ์ˆ˜
  • ํŠธ๋ฆฌ์˜ ๋†’์ด(height): ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๊ฐ€์žฅ ๊นŠ์ˆ™ํžˆ ์žˆ๋Š” ๋…ธ๋“œ์˜ ๊นŠ์ด

์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)

  • ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ–๋Š” ํŠธ๋ฆฌ
  • ๋ชจ๋“  ํŠธ๋ฆฌ๊ฐ€ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์•„๋‹˜

์ด์ง„ ํŠธ๋ฆฌ ์ˆœํšŒ

  • ์ „์œ„ ์ˆœํšŒ(pre-order-traversal): ํ˜„์žฌ ๋…ธ๋“œ => ์™ผ์ชฝ ๋…ธ๋“œ => ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ
  • ์ค‘์œ„ ์ˆœํšŒ(in-order-traversal): ์™ผ์ชฝ ๋…ธ๋“œ => ํ˜„์žฌ ๋…ธ๋“œ => ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ
  • ํ›„์œ„ ์ˆœํšŒ(post-order-traversal): ์™ผ์ชฝ ๋…ธ๋“œ => ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ => ํ˜„์žฌ ๋…ธ๋“œ

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)

  • ๋ชจ๋“  ์™ผ์ชฝ ์ž์‹๋“ค <= N <= ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์ž์‹๋“ค

์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete Binary Tree)

  • ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋†’์ด์—์„œ ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ๋Š” ํŠธ๋ฆฌ
  • ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์€ ๊ฝ‰ ์ฐจ ์žˆ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ ๋…ธ๋“œ๊ฐ€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฑ„์›Œ์ ธ์•ผ ํ•จ

๋ฌธ์ œํ’€์ด

  1. ํ˜„์žฌ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ(x) ๊ธฐ์ค€ ์™ผ์ชฝ ๋…ธ๋“œ์˜ ๊ฐ’์€ x*2 ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ์˜ ๊ฐ’์ด x*2+1 ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  2. ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” ๋ณ„๋„๋กœ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด ์•„๋‹Œ ์ˆœ์„œ๋„๋งŒ์„ ์‚ฐ์ถœํ•ด๋‚ด๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ท€ ํ•จ์ˆ˜์™€ ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•œ๋‹ค.
  3. ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ํ˜ธ์ถœ ์ˆœ์„œ๋ฅผ ์ค‘์ ์œผ๋กœ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์ž๋ฅผ ์–ด๋””์— ๋ฐฐ์น˜ํ•˜๋ƒ์— ๋”ฐ๋ผ ์ˆœํšŒ๋ฅผ ๋‹ฌ๋ฆฌ ์‚ฐ์ถœํ•œ๋‹ค.

 

์ฝ”๋“œ

function solution(n){
  let answer="";
  function DFS(v){
      if(v>7) return;
      else{
          DFS(v*2);
          answer+=(v+' ');
          DFS(v*2+1);
      }
  }
  DFS(n);
  return answer;
}

console.log(solution(1));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
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
๊ธ€ ๋ณด๊ด€ํ•จ