[์ž๋ฃŒ๊ตฌ์กฐ] ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ๊ฐœ๋… ์ •๋ฆฌ | ๊ทธ๋ž˜ํ”„, ํŠธ๋ฆฌ, ํž™, ์šฐ์„ ์ˆœ์œ„ ํ, ์…‹, ๋งต, ํ•ด์‹œ ํ…Œ์ด๋ธ”

2025. 10. 18. 17:48ยทโš™๏ธ CS/๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜
์ด ํฌ์ŠคํŒ…์€ ์ฃผํ™์ฒ  ์ € '๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ' 5.3์žฅ์„ ํ† ๋Œ€๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ๋ž€,

์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•˜์ง€ ์•Š๊ณ  ์ž๋ฃŒ ์ˆœ์„œ๋‚˜ ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ ๊ทธ๋ž˜ํ”„(Graph)

๊ทธ๋ž˜ํ”„๋Š” ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

  • ์ •์ (vertex/node)
    • ํ•ญ๋ชฉ ์ž์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์›์†Œ
  • ๊ฐ„์„ (edge)
    • ์ •์ ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์„ ์œผ๋กœ, ์ •์  ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
    • ๋‹จ๋ฐฉํ–ฅ์ผ ์ˆ˜๋„, ์–‘๋ฐฉํ–ฅ์ผ ์ˆ˜๋„ ์žˆ์Œ

 

 

  • ์ฐจ์ˆ˜(degree): ์ •์ ์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜
  • ๊ฒฝ๋กœ(path): ํ•œ ์ •์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„์„ ๋“ค์˜ ์ˆœ์„œ
  • ์‚ฌ์ดํด(cycle): ์‹œ์ž‘ ์ •์ ๊ณผ ๋ ์ •์ ์ด ๋™์ผํ•œ ๊ฒฝ๋กœ
  • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(Undirected Graph): ๊ฐ„์„ ์ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ž˜ํ”„
  • ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(Directed Graph/Digraph): ๊ฐ„์„ ์— ๋ฐฉํ–ฅ์ด ์žˆ์–ด ํ•œ์ชฝ์œผ๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ž˜ํ”„
  • ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„(Weighted Graph): ๊ฐ„์„ ์— ๋น„์šฉ์ด๋‚˜ ๊ฑฐ๋ฆฌ ๋“ฑ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ํ• ๋‹น๋œ ๊ทธ๋ž˜ํ”„, ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ ๋“ฑ์—์„œ ํ™œ์šฉ


๐Ÿ“Œ ํŠธ๋ฆฌ(Tree)

ํŠธ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ตฌ์กฐ๋กœ,

์ •์ ๋“ค์ด ๋‚˜๋ญ‡๊ฐ€์ง€์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋œ ๊ณ„์ธต์  ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

 

ํŠธ๋ฆฌ์—์„œ๋Š” ๊ฐ ์ •์ ์„ ๋ณดํ†ต ๋…ธ๋“œ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

  • ๋ฃจํŠธ ๋…ธ๋“œ: ํŠธ๋ฆฌ์˜ ์ตœ์ƒ์œ„ ๋…ธ๋“œ๋กœ, ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ์œ ์ผํ•œ ๋…ธ๋“œ
  • ๋ฆฌํ”„ ๋…ธ๋“œ: ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ
  • ๋‚ด๋ถ€ ๋…ธ๋“œ: ๋ฃจํŠธ ๋…ธ๋“œ๋„, ๋ฆฌํ”„ ๋…ธ๋“œ๋„ ์•„๋‹Œ ์ž์‹์ด ์žˆ๋Š” ๋…ธ๋“œ
  • ์ฐจ์ˆ˜(degree): ์–ด๋–ค ๋…ธ๋“œ๊ฐ€ ๊ฐ€์ง„ ์ž์‹์˜ ๊ฐœ์ˆ˜
  • ๋†’์ด(height): ํŠน์ • ๋…ธ๋“œ์—์„œ๋ถ€ํ„ฐ ๋ฆฌํ”„ ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฐ€์žฅ ๊ธด ๊ฒฝ๋กœ์˜ ๊ฐ„์„  ์ˆ˜
    • ํŠธ๋ฆฌ์˜ ๋†’์ด = ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๋†’์ด
  • ๊นŠ์ด(depth): ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ํŠน์ • ๋…ธ๋“œ๊นŒ์ง€ ๊ฐ„์„  ์ˆ˜
    • ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊นŠ์ด๋Š” 0
  • ๋ ˆ๋ฒจ(level): ๋ณดํ†ต ๊นŠ์ด์™€ ๊ฐ™์€ ์˜๋ฏธ, ๋ฃจํŠธ๋Š” ๋ ˆ๋ฒจ 1๋ถ€ํ„ฐ ์‹œ์ž‘
    • ๊นŠ์ด 0 = ๋ ˆ๋ฒจ 1
  • ์„œ๋ธŒ ํŠธ๋ฆฌ: ํŠธ๋ฆฌ ๋‚ด์˜ ํ•˜์œ„ ์ง‘ํ•ฉ(๋ถ€๋ถ„ ์ง‘ํ•ฉ)

 

๐Ÿ“Œ ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)

ํŠธ๋ฆฌ ์ค‘์—์„œ ๊ฐ ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜(์ž์‹์˜ ์ˆ˜)๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์ธ ํŠธ๋ฆฌ๋ฅผ ์ด์ง„ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ์ •์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)
    • ๊ฐ ๋‚ด๋ถ€ ๋…ธ๋“œ๊ฐ€ ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ
    • ํ™€์ˆ˜ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ(์ž์‹์ด 0๊ฐœ ๋˜๋Š” 2๊ฐœ)
  • ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete Binary Tree)
    • ๋ถ€๋ชจ, ์™ผ์ชฝ ์ž์‹, ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ˆœ์œผ๋กœ ์ฑ„์›Œ์ง€๋Š” ํŠธ๋ฆฌ
    • ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋“ ์ฐจ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋Š” ์ „๋ถ€ ์ฐจ์žˆ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฑ„์›Œ์ ธ ์žˆ์–ด์•ผ ํ•จ
  • ๋ณ€์งˆ ์ด์ง„ ํŠธ๋ฆฌ(Degenerate Binary Tree)
    • ๊ฐ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์˜ค์ง 1๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋งŒ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ
    • ์‹ค์งˆ์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ(List) ๊ตฌ์กฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•จ
  • ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ(Perfect Binary Tree)
    • ์ •์ด์ง„ ํŠธ๋ฆฌ์ด๋ฉด์„œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์ธ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ
  • ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ(Balanced Binary Tree)
    • ์™ผ์ชฝ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ 1 ์ดํ•˜์ธ, ํ•œ์ชฝ์œผ๋กœ ์ง€๋‚˜์น˜๊ฒŒ ์น˜์šฐ์น˜์ง€ ์•Š๊ณ  ๊ท ํ˜•์„ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ํŠธ๋ฆฌ
    • ํŠธ๋ฆฌ๊ฐ€ ํ•œ ์ชฝ์œผ๋กœ ์น˜์šฐ์นœ ๊ฒฝ์šฐ, ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์•…ํ™”๋˜๋ฏ€๋กœ ๊ณ ์•ˆ๋œ ๊ตฌ์กฐ

๐Ÿ“Œ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ˆœํšŒ

  • ์ „์œ„ ์ˆœํšŒ(Preorder Traversal)
    • ์ž์‹  → ์™ผ์ชฝ ์ž์‹ → ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ˆœ์„œ๋กœ ์ˆœํšŒ
    • 0 → 1 → 3 → 7 → 8 → 4 → 9 → 10 → 2 → 5 → 11 → 5 → 6
  • ์ค‘์œ„ ์ˆœํšŒ(Inorder Traversal)
    • ์™ผ์ชฝ ์ž์‹ → ์ž์‹  → ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ˆœ์„œ๋กœ ์ˆœํšŒ
    • 7 → 3 → 8 → 1 → 4 → 9 → 10 → 0 → 11 →  5 →  2→ 6
  • ํ›„์œ„ ์ˆœํšŒ(Postorder Traversal)
    • ์™ผ์ชฝ ์ž์‹ → ์˜ค๋ฅธ์ชฝ ์ž์‹ → ์ž์‹  ์ˆœ์„œ๋กœ ์ˆœํšŒ
    • 7 → 8 → 3 → 9 → 10 → 4 → 1 → 11 → 5  → 6 → 2 → 0 

๐Ÿ“Œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree, BST)

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ํŠน์ • ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ

๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์ธ ์ด์ง„ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—๋Š” ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’๋งŒ ์ €์žฅ
  • ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—๋Š” ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฐ ๊ฐ’๋งŒ ์ €์žฅ
  • ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋„ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ

์ด ๊ตฌ์กฐ์—์„œ 10์„ ์ฐพ์œผ๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ๋ฃจํŠธ ๋…ธ๋“œ์ธ 25๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์™ผ์ชฝ ๋…ธ๋“œ๋“ค๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ํ‰๊ท ์ ์œผ๋กœ O(logN)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๋‹จ ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์ง€๋‚˜์น˜๊ฒŒ ์น˜์šฐ์น˜๋Š” ํŽธํ–ฅ ํŠธ๋ฆฌ๊ฐ€ ๋˜๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N)์˜ ์‹œ๊ฐ„์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜์—ฌ ์ตœ์•…์˜ ์„ฑ๋Šฅ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ

AVL ํŠธ๋ฆฌ๋‚˜ ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ(Red-Black ํŠธ๋ฆฌ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“Œ AVL ํŠธ๋ฆฌ(Adelson-Velsky and Landis Tree)

์ตœ๊ฐ•์˜ ๊ฒฝ์šฐ ์„ ํ˜•์ ์ธ ํŠธ๋ฆฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š”, 

๊ท ํ˜• ์žกํžŒ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

 

  • ํ•ญ์ƒ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ ์ตœ๋Œ€ 1์„ ๋„˜์ง€ ์•Š๋„๋ก ๊ท ํ˜•์„ ์กฐ์ ˆ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…/์‚ญ์ œํ•  ๋•Œ๋งˆ๋‹ค ๊ท ํ˜•์ด ๊นจ์ง€ ํšŒ์ „(Rotation) ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํŠธ๋ฆฌ๋ฅผ ์žฌ๊ตฌ์„ฑ
  • ํšŒ์ „ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค: https://lifeandit.tistory.com/101
  • ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ๋ชจ๋‘ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(lonN) ์†Œ์š”

 

๐Ÿ“Œ ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ(Red-Black Tree) 

๊ฐ ๋…ธ๋“œ๋ฅผ ๋นจ๊ฐ„์ƒ‰ ๋˜๋Š” ๊ฒ€์€์ƒ‰์œผ๋กœ ์ƒ‰์น ํ•˜์—ฌ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ ์ค‘์— ํŠธ๋ฆฌ๊ฐ€ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋„๋ก ํ•˜๋Š”

๋˜๋‹ค๋ฅธ ๊ท ํ˜• ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์—์„œ๋„ ๋…ธ๋“œ ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(logN)์ž…๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๋…ธ๋“œ๋Š” Red ๋˜๋Š” Black์œผ๋กœ ์ƒ‰์น 
  • ๋ฃจํŠธ ๋…ธ๋“œ๋Š” Black์œผ๋กœ ์ƒ‰์น 
  • ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ(NIL)๋Š” Black์œผ๋กœ ์ƒ‰์น 
  • Red์˜ ๋…ธ๋“œ์˜ ์ž์‹์€ ํ•ญ์ƒ Black์œผ๋กœ ์ƒ‰์น  (Red ๋…ธ๋“œ๊ฐ€ ์—ฐ์†๋  ์ˆ˜ ์—†์Œ)
  • ์–ด๋–ค ๋…ธ๋“œ์—์„œ๋ถ€ํ„ฐ ๋ฆฌํ”„ ๋…ธ๋“œ์— ์ด๋ฅด๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ์—์„œ Black ๋…ธ๋“œ์˜ ์ˆ˜(Black height)๋Š” ๊ฐ™์Œ

 

AVL ํŠธ๋ฆฌ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ ์ตœ๋Œ€ 1์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์—„๊ฒฉํ•œ ๊ทœ์น™์ด์—ˆ์ง€๋งŒ,

๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์—์„œ๋Š” ๋†’์ด ์ฐจ์ด๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ œํ•œํ•˜๋Š” ๋Œ€์‹ , Black Height๋ผ๋Š” ๊ฐœ๋…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•œ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ณด๋‹ค ์ตœ๋Œ€ 2๋ฐฐ๊นŒ์ง€ ๊ธธ์–ด์ง€๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ์™„๋ฒฝํ•œ ๊ท ํ˜•๋ณด๋‹ค๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๊ท ํ˜•์„ ์ถ”๊ตฌํ•˜๋Š” ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ๊ฐ€ AVL ํŠธ๋ฆฌ์— ๋น„ํ•ด ๋œ ์—„๊ฒฉํ•˜๊ณ  ์œ ์—ฐํ•˜์—ฌ

์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ณ  ํƒ์ƒ‰์€ ์กฐ๊ธˆ ๋А๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ™์€ O(logN)์ด์–ด๋„ ์ƒ์ˆ˜ ๊ณ„์ˆ˜์˜ ํฌ๊ธฐ๊ฐ€ ์ฐจ์ด๋‚˜๋Š” ๊ฒ๋‹ˆ๋‹ค.

 

๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ ์‚ฝ์ž…/์‚ญ์ œ ๊ณผ์ •์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋‹ค์Œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค: https://code-lab1.tistory.com/62


๐Ÿ“Œ ํž™(Heap)

์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ

ํ•ญ์ƒ ์ตœ๋Œ€๊ฐ’ ๋˜๋Š” ์ตœ์†Œ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

ํž™์€ ๋ฃจํŠธ ๋…ธ๋“œ์— ํ•ญ์ƒ ๊ทน๋‹จ์ ์ธ ๊ฐ’(์ตœ๋Œ€๊ฐ’ ๋˜๋Š” ์ตœ์†Œ๊ฐ’)์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ๋Œ€ ํž™(Max Heap)
    • ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํ•ญ์ƒ ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ
    • ๋ฃจํŠธ ๋…ธ๋“œ์—๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์ €์žฅ๋จ
  • ์ตœ์†Œ ํž™(Min Heap)
    • ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํ•ญ์ƒ ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ
    • ๋ฃจํŠธ ๋…ธ๋“œ์—๋Š” ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ด ์ €์žฅ๋จ

ํž™ ๊ตฌ์กฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ๋งจ ๋์— ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„, 

๊ทœ์น™์„ ๋งŒ์กฑํ•˜๋„๋ก ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ๋ถ€๋ชจ ๋…ธ๋“œ๋“ค๊ณผ ๋น„๊ตํ•˜๋ฉฐ ์ ์ ˆํ•œ ์œ„์น˜๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค.

 

์ด์ฒ˜๋Ÿผ ํŠธ๋ฆฌ๊ฐ€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์œ ์ง€๋˜๊ธฐ ์œ„ํ•ด

์‚ฝ์ž…, ์‚ญ์ œ์—์„œ๋Š” O(logN)์˜ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

ํž™์€ ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ๋กœ ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ ํ™•์ธํ•˜๋ฏ€๋กœ ์ตœ๋Œ€/์ตœ์†Œ๊ฐ’ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์€ O(1)์ž…๋‹ˆ๋‹ค.

 


๐Ÿ“Œ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)

๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ์™€ ๋‹ฌ๋ฆฌ,

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์š”์†Œ๊ฐ€ ๋จผ์ € ์ถ”์ถœ(๋Œ€๊ธฐ์—ด์—์„œ ๊บผ๋‚ด์ง/์‚ญ์ œ)๋ฉ๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์š”์†Œ๋ฅผ O(1)์— ํ™•์ธํ•˜๊ณ ,

์‚ฝ์ž… ๋ฐ ์ถ”์ถœ์„ O(logN)์— ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํž™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

ํž™ ์†์„ฑ์— ๋”ฐ๋ผ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ์ตœ์šฐ์„  ์ˆœ์œ„๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

Java์—์„œ๋Š” `java.util.PriorityQueue` ํด๋ž˜์Šค๊ฐ€ ์ตœ์†Œ ํž™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ์šฐ์„ ์ˆœ์œ„ ํ์ž…๋‹ˆ๋‹ค.

 

์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์—ฌ๋Ÿฌ ์š”์†Œ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ๋Š” ๋‹ค์Œ์œผ๋กœ ๋ฐฉ๋ฌธํ•  ๋…ธ๋“œ ์ค‘ ๋น„์šฉ์ด ๊ฐ€์žฅ ๋‚ฎ์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์ด ์ž‘์€ ์š”์†Œ๊ฐ€ ์ตœ์šฐ์„  ์ˆœ์œ„์ธ ์ตœ์†Œ ํž™ ๊ธฐ๋ฐ˜ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ ๋งต(Map)

ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ํ‚ค๋Š” ๊ฐ ๊ฐ’์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋•๋ถ„์— O(1)์— ๊ฐ€๊นŒ์šด ์†๋„๋กœ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ํ‚ค๋Š” ๊ณ ์œ ํ•จ. ์ค‘๋ณต๋œ ํ‚ค๋กœ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋ฉด ๊ธฐ์กด์˜ ๊ฐ’์ด ๋ฎ์–ด์”Œ์›Œ์ง
  • ๊ฐ’์€ ์ค‘๋ณต๋˜์–ด๋„ ์ƒ๊ด€์—†์Œ

๐Ÿ“Œ ์…‹(Set)

์ค‘๋ณต๋˜๋Š” ์š”์†Œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฑธ ๋ณด์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

  • ์…‹์— ์ €์žฅ๋˜๋Š” ์š”์†Œ๋“ค์€ ๋ชจ๋‘ ๊ณ ์œ ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋ฒˆ ์ถ”๊ฐ€ํ•˜๋ ค ํ•ด๋„ ์˜ค์ง ํ•˜๋‚˜๋งŒ ์ €์žฅ
  • HashSet์ด ํ”ํ•˜๋ฉฐ, ์ˆœ์„œ๋Š” ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ํŠน์ง•์ด ์žˆ์Œ

์‚ฝ์ž…, ์‚ญ์ œ, ์กด์žฌ ํ™•์ธ ์‹œ ํ‰๊ท  O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 


๐Ÿ“Œ ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)

ํ‚ค(key)๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function)๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค(Hash Code)๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

์‚ฝ์ž…, ์‚ญ์ œ, ํƒ์ƒ‰ ์‹œ ํ‰๊ท ์ ์œผ๋กœ O(1)์ด๋ผ๋Š” ๋งค์šฐ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํƒ์ƒ‰์˜ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ €์žฅํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ  ์‹๋ณ„์ž, ํ‚ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค๋ฅผ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ํ•ด์‹œ ํ•จ์ˆ˜์— ๋”ฐ๋ผ ์–ด๋– ํ•œ ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์ข‹์€ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ‚ค๋ฅผ ์ตœ๋Œ€ํ•œ ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ์‹œ์ผœ ์ธ๋ฑ์Šค๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฒ„ํ‚ท(๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์ €์žฅํ•œ ์ฐฝ๊ณ )์„ ํ™•์ธํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

\

์˜ˆ๋ฅผ ๋“ค์–ด Sam Doe์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด ํ‚ค์— Sam Doe๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.

ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ Sam Doe๋ฅผ 254๋ผ๋Š” ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒ„ํ‚ท์„ ์‚ดํŽด๋ณด๋‹ˆ Sam Doe: 521-5030์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

ํ‚ค๊ฐ€ ๋งค์šฐ ๊ธด ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ ํฐ ๋ฐ์ดํ„ฐ์ธ ๊ฒฝ์šฐ์—๋„ ์ œํ•œ๋œ ๊ฐœ์ˆ˜์˜ ๋ฒ„ํ‚ท ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๋ฌดํ•œ์— ๊ฐ€๊นŒ์šด ํ‚ค ๊ณต๊ฐ„์„ ์œ ํ•œํ•œ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋กœ ์••์ถ•ํ•˜์—ฌ ๋งคํ•‘ํ•˜๊ณ 

๋•๋ถ„์— ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋”๋ผ๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š” ๊ณต๊ฐ„(๋ฒ„ํ‚ท ๋ฐฐ์—ด) ์ž์ฒด๋Š” ์ž‘๊ฒŒ ์œ ์ง€๋  ์ˆ˜ ์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์—์„œ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.


์ถ”๊ฐ€ ์ฐธ๊ณ ์ž๋ฃŒ

  • ๊ทธ๋ž˜ํ”„(์ž๋ฃŒ๊ตฌ์กฐ) ์œ„ํ‚ค
  • [Data Structure] ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)์˜ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜์™€ ํŠน์ง•
  • ํž™ (์ตœ์†Œ ํž™, ์ตœ๋Œ€ ํž™)
  • [์ž๋ฃŒ๊ตฌ์กฐ] ํ•ด์‹œํ…Œ์ด๋ธ”(HashTable)์ด๋ž€?

 

 

 

'โš™๏ธ CS > ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ž๋ฃŒ๊ตฌ์กฐ] ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ  (0) 2025.10.02
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„ + Big O ํ‘œ๊ธฐ๋ฒ•  (0) 2025.10.02
[์ž๋ฃŒ๊ตฌ์กฐ][์•Œ๊ณ ๋ฆฌ์ฆ˜] Big O ํ‘œ๊ธฐ๋ฒ•  (1) 2025.02.13
'โš™๏ธ CS/๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ž๋ฃŒ๊ตฌ์กฐ] ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„ + Big O ํ‘œ๊ธฐ๋ฒ•
  • [์ž๋ฃŒ๊ตฌ์กฐ][์•Œ๊ณ ๋ฆฌ์ฆ˜] Big O ํ‘œ๊ธฐ๋ฒ•
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐ŸŒฟSpring (20)
      • โ˜•Java (7)
        • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (7)
      • โš™๏ธ CS (26)
        • ๐Ÿ›œ ๋„คํŠธ์›Œํฌ (5)
        • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
        • ๐Ÿ–ฒ๏ธ์šด์˜์ฒด์ œ (9)
        • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
        • Docker (4)
        • AWS (0)
      • ๐Ÿ“ฐ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (12)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (1)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋„คํŠธ์›Œํฌ
    ๋ฐฐํฌ
    ๊ฐœ๋ฐœ
    Java
    ๊ธฐ์ˆ  ๋ฉด์ ‘
    ์šด์˜์ฒด์ œ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    Spring
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    docker
    ์„œ๋ฒ„
    GIT
    ์ž๋ฃŒ๊ตฌ์กฐ
    Spring Security
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[์ž๋ฃŒ๊ตฌ์กฐ] ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ๊ฐœ๋… ์ •๋ฆฌ | ๊ทธ๋ž˜ํ”„, ํŠธ๋ฆฌ, ํž™, ์šฐ์„ ์ˆœ์œ„ ํ, ์…‹, ๋งต, ํ•ด์‹œ ํ…Œ์ด๋ธ”
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”