๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

๐Ÿฆ Cell Algorithm : Tree ๋ณธ๋ฌธ

๐Ÿง Algorithm/โšกver.0

๐Ÿฆ Cell Algorithm : Tree

4:Bee 2024. 6. 17. 23:11
728x90

์Šคํƒ๊ณผ ํ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ Tree๋กœ ๋„˜์–ด์˜ค๊ฒŒ ๋œ ์ด์œ ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜๋“ค์„ ์ฒญ๊ฐ•๋งŒ ์—ฌ๋Ÿฟ ํ•ด๋ณด๋‹ค ๋ณด๋‹ˆ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋„๋‹ฌํ•˜๋Š” ๊ฐœ๋…๊ณผ ์‹ค์ œ ํ”„๋กœ์ ํŠธ๋‚˜ ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์ ‘ํ•˜๋Š” ๊ฐœ๋…์ด ๋ฐ”๋กœ Tree๋ผ๋Š” ๊ฒƒ์„ ๋Š๋ผ๊ณ  ๋ฅ์„ Tree ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋จผ์ € ํฌ์ŠคํŒ…ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฌผ๋ก  ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๊ฐœ๋…๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์›Œ๊ฐ€๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฐ ๊ฐœ๋… ๋ถ€ํ„ฐ ์ž‘์€ ๊ฐœ๋…์œผ๋กœ ์ชผ๊ฐœ์ง€๋ฉด์„œ ๋ฐฐ์›Œ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ ๋งž๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด๋“ค์–ด์„œ ๊ณต๋ถ€ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์—ˆ๋‹ค. Tree๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋ฉด BFS์™€ DFS๋ฅผ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.


Tree

ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ์™€ ์—ฃ์ง€๋กœ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ, ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ฆ‰, ๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„์œผ๋กœ๋„ tree๋ฅผ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” Tree๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.)


ํŠธ๋ฆฌ์˜ ํŠน์ง•

  • ์ˆœํ™˜ ๊ตฌ์กฐ๋ฅผ ์ง€๋‚˜๊ณ  ์žˆ์ง€ ์•Š๊ณ , 1๊ฐœ์˜ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋…ธ๋“œ๋Š” ๋‹จ 1๊ฐœ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ํŠธ๋ฆฌ์˜ ๋ถ€๋ถ„ ํŠธ๋ฆฌ ์—ญ์‹œ ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ํŠน์ง•์„ ๋”ฐ๋ฅธ๋‹ค.
  • ํŠธ๋ฆฌ์—์„œ ์ž„์˜ ๋‘ ๋…ธ๋“œ๋ฅผ ์ด์–ด์ฃผ๋Š” ๊ฒฝ๋กœ๋Š” ์œ ์ผํ•˜๋‹ค.

์˜ˆ์‹œ ์ด๋ฏธ์ง€ 1


ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ

์˜ˆ์‹œ ์ด๋ฏธ์ง€2 (์•„๋ž˜ ํ‘œ ์˜ˆ์‹œ ์ด๋ฏธ์ง€)

์šฉ์–ด ์ •์˜ ์˜ˆ์‹œ
๋…ธ๋“œ (node) ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ. ์œ„์น˜์— ๋”ฐ๋ผ ์ด๋ฆ„์ด ์žˆ๋Š” ์›์†Œ๋“ค F, B, G, A, D, I, C, E, H
์—ฃ์ง€ (edge) ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ . ํŠธ๋ฆฌ์—์„œ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„  F-B, B-A, B-D, D-C, D-E, F-G, G-I, I-H
๋ฃจํŠธ ๋…ธ๋“œ (root node) ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ. ๋ฟŒ๋ฆฌ๋ผ๊ณ ๋„ ํ•œ๋‹ค. F๋Š” ๋ฃจํŠธ ๋…ธ๋“œ
์กฐ์ƒ ๋…ธ๋“œ (ancestor node) ์–ด๋–ค ๋…ธ๋“œ๋ณด๋‹ค ์œ„(๋ฃจํŠธ์ชฝ)์— ์œ„์น˜ํ•œ ๋…ธ๋“œ(์—ฐ๊ฒฐ๋œ ์ด์–ด์•ผ ํ•จ)  F, B, D๋Š” E์˜ ์กฐ์ƒ ๋…ธ๋“œ/G๋Š” E์˜ ์กฐ์ƒ ๋…ธ๋“œ๊ฐ€ ์•„๋‹ˆ๋‹ค.
๋ถ€๋ชจ ๋…ธ๋“œ (parent node) ์–ด๋–ค ๋…ธ๋“œ ๋ฐ”๋กœ ์œ„(๋ฃจํŠธ์ชฝ)์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋…ธ๋“œ F๋Š” B์™€ G์˜ ๋ถ€๋ชจ ๋…ธ๋“œ
์ž์‹ ๋…ธ๋“œ (child node) ์–ด๋–ค ๋…ธ๋“œ ๋ฐ”๋กœ ์•„๋ž˜์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋…ธ๋“œ I๋Š” G์˜ ์ž์‹ ๋…ธ๋“œ
ํ˜•์ œ ๋…ธ๋“œ (sibling) ๊ฐ™์€ ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ์ž์‹๋“ค, ์ž๋งค ๋…ธ๋“œ๋ผ๊ณ ๋„ ํ•œ๋‹ค. A, D๋Š” ํ˜•์ œ ๋…ธ๋“œ
ํ›„์† ๋…ธ๋“œ (descendant node) ์กฐ์ƒ ๋…ธ๋“œ์˜ ๋ฐ˜๋Œ€ - ๋…ธ๋“œ ๋ณด๋‹ค ์•„๋ž˜์— ์œ„์น˜ํ•œ ๋…ธ๋“œ H๋Š” F, G, I์˜ ํ›„์† ๋…ธ๋“œ
๋ฆฌํ”„ ๋…ธ๋“œ (leaf node) ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ, ์ผ์ข…์˜ ๊ฐ€์žฅ์ž๋ฆฌ ๋…ธ๋“œ C, E, H๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ
๋‚ด๋ถ€ ๋…ธ๋“œ (internal node) ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ, ์ž์‹์ด ์žˆ๋Š” ๋…ธ๋“œ F, B, G, A, D, I๋Š” ๋‚ด๋ถ€ ๋…ธ๋“œ
์™ธ๋ถ€ ๋…ธ๋“œ (external node) ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ, ๋ฆฌํ”„ ๋…ธ๋“œ์™€ ๊ฐ™์€ ๋ง C, E, H๋Š” ์™ธ๋ถ€ ๋…ธ๋“œ
์„œ๋ธŒํŠธ๋ฆฌ (subtree) ํŠน์ • ๋…ธ๋“œ์™€ ๊ทธ ๋…ธ๋“œ์˜ ๋ชจ๋“  ํ›„์†์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ B ๋…ธ๋“œ์™€ ๊ทธ ์ž์‹ A, D, C, E๋กœ ์ด๋ฃจ์–ด์ง„ ์„œ๋ธŒํŠธ๋ฆฌ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ์˜ Tree

  1. ๊ทธ๋ž˜ํ”„๋กœ ํ‘ธ๋Š” tree (tree๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Node, Edge)
    1. ๊ทธ๋ž˜ํ”„ : ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„
    2. ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : DFS,BFS
  2. tree ๋งŒ์„ ์œ„ํ•œ ๋ฌธ์ œ
    1. ์ด์ง„ ํŠธ๋ฆฌ
    2. ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ&LCA(or index tree / ์ตœ์†Œ ๊ณตํ†ต ์กฐ์ƒ : ๋‚œ์ด๋„๊ฐ€ ๋†’์€ ํŽธ์ด๋‹ค.)
  3. tree ๋งŒ์„ ์œ„ํ•œ ๋ฌธ์ œ๋ฅผ 1์ฐจ์› ๋ฐฐ์—ด๋กœ tree ํ‘œํ˜„(์˜ˆ์‹œ ์ด๋ฏธ์ง€ 1 ์ฐธ์กฐ) 

    index 0 1 2 3 4 5 6 7
    node x A B C D E - -
    ๋ถ€๋ชจ node x x x A B B - -
    * ํ•ญ์ƒ ๋ถ€๋ชจ ์ž์‹์„ ๋”ฐ์ง€๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
    1. ๋ถ€๋ชจ node๋กœ ์ ‘๊ทผ ๊ณต์‹ : index/2
    2. ์ž์‹ node๋กœ ์ ‘๊ทผ ๊ณต์‹ : index * 2 + 1

SUMMARY

  • tree๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐ€์ง€๊ณ  ํ’€์ˆ˜๋„ ์žˆ๊ณ  DFS,BFS,์ธ์ ‘๋ฆฌ์ŠคํŠธ๋กœ๋„ ํ’€์ˆ˜ ์žˆ์œผ๋ฉฐ 1์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ํ’€ ์ˆ˜๋„ ์žˆ๋‹ค.

REFERNCE

728x90
Comments