[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 4๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(2)

2025. 9. 19. 12:29ยท๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 

โœ… 1. ํŠธ๋ฆฌ

  • ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ( 1:N ๊ด€๊ณ„์ด๋ฉฐ, ์ผ์ง์„ ์ด ์•„๋‹˜ )
  • ๋…ธ๋“œ(node)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ถ€๋ถ„๊ณผ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ€์ง€(branch, edge)๋กœ ๊ตฌ๋ถ„์ด ๋œ๋‹ค.
  • ๋…ธ๋“œ ์‚ฌ์ด์—๋Š” ๊ณ„์ธต์ ์ธ ๊ด€๊ณ„์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๊ณ  ์ด๊ฒƒ์€ ๋ ˆ๋ฒจ0, 1, 2, 3 ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Œ.

(1) ํŠธ๋ฆฌ ์šฉ์–ด ์ •์˜

  • ๋…ธ๋“œ(node): ์ •๋ณด ํ•ญ๋ชฉ์„ ์˜๋ฏธํ•˜๋ฉฐ A, B, C, D ... ๋“ฑ์ด ๋ชจ๋‘ ๋…ธ๋“œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.
  • ๋ฃจํŠธ(root): ๋นˆ ํŠธ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์— ๋งจ ๊ผญ๋Œ€๊ธฐ์— ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ์˜๋ฏธํ•จ. ( A ๋ถ€๋ถ„์— ํ•ด๋‹นํ•จ )
  • ์ฐจ์ˆ˜(degree): ๊ฐ ๋…ธ๋“œ์— ์žˆ๋Š” ๊ฐ€์ง€์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ. ( ๊ทธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž์‹ ๋…ธ๋“œ(ํ•˜์œ„ ๋…ธ๋“œ)์˜ ๊ฐœ์ˆ˜๋กœ ๋ด์•ผ ํ•จ. )

(2) ์žŽ ๋…ธ๋“œ (๋‹จ๋ง ๋…ธ๋“œ) & ๋‚ด๋ถ€ ๋…ธ๋“œ (๋น„๋‹จ๋ง ๋…ธ๋“œ)

[ ์žŽ ๋…ธ๋“œ ( ๋‹จ๋ง ๋…ธ๋“œ ) ]

  • ๋‹จ๋ง ๋…ธ๋“œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜๊ฐ€ 0์ธ ๋…ธ๋“œ ์ฆ‰, ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ( 3๋ ˆ๋ฒจ์— ํ•ด๋‹น ํ•  ๋“ฏ )

[ ๋‚ด๋ถ€ ๋…ธ๋“œ ( ๋น„๋‹จ๋ง ๋…ธ๋“œ ) ]

  • ๋น„๋‹จ๋ง ๋…ธ๋“œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๋ฃจํŠธ ๋…ธ๋“œ์™€ ๋‹จ๋ง ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋…ธ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ( ๋ ˆ๋ฒจ 1๊ณผ 2๊ฐ€ ํ•ด๋‹น ํ•  ๋“ฏ )

(3) ์กฐ์ƒ ๋…ธ๋“œ & ์ž์† ๋…ธ๋“œ

[ ์กฐ์ƒ ๋…ธ๋“œ ]

  • ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์–ด๋–ค ๋…ธ๋“œ X๊นŒ์ง€์˜ ๊ฒฝ๋กœ(๊ฐ€์ง€๋“ค์˜ ๋ชจ์Œ) ์ƒ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ X์˜ ์กฐ์ƒ ๋…ธ๋“œ๋ผ๊ณ  ํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ํŠน์ • ๋…ธ๋“œ์™€ ๋ฃจํŠธ ๋…ธ๋“œ ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์กฐ์ƒ ๋…ธ๋“œ๋ผ๊ณ  ๋ถ€๋ฆ„.

[ ์ž์† ๋…ธ๋“œ ]

  • ์–ด๋–ค ๋…ธ๋“œ X์—์„œ ๋‹จ๋ง ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฒฝ๋กœ ์ƒ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ž์† ๋…ธ๋“œ๋ผ๊ณ  ํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ํŠน์ • ๋…ธ๋“œ์˜ ์•„๋ž˜์— ์—ฐ๊ฒฐ ๋œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ž์† ๋…ธ๋“œ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ๋ฃจํŠธ์˜ ์ž์†์ด๋ผ ํ•˜๋ฉด ์ „๋ถ€๋‹ค์ž„.

(4) ๋ ˆ๋ฒจ & ๊นŠ์ด ๊ฐœ๋…

  • ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ(๊ฐ€์ง€์˜ ์ˆ˜)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 0๋ ˆ๋ฒจ ~ N๋ ˆ๋ฒจ ๊นŒ์ง€ ์กด์žฌ ํ•  ์ˆ˜ ์žˆ์Œ.
  • ํŠธ๋ฆฌ์˜ ๊นŠ์ด ๋˜๋Š” ๋†’์ด๋กœ๋„ ํ‘œํ˜„์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๊ธด ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋‹จ๋ง ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ์— 1์˜ ๊ฐ’์„ ๋”ํ•œ ๊ฒƒ์ด ๋  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ๋ ˆ๋ฒจ์ด 3๋ ˆ๋ฒจ์ธ ๊ฒฝ์šฐ ๊นŠ์ด 4๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.

(5) ์„œ๋ธŒ ํŠธ๋ฆฌ & ์ˆฒ

[ ์„œ๋ธŒ ํŠธ๋ฆฌ (subtree) ]

  • ํŠน์ • ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ํ•˜๊ณ , ๊ทธ ์•„๋ž˜์— ์žˆ๋Š” ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ์˜ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ด๋ฏธ์ง€๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด, ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์˜ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ๋นจ๊ฐ„์ƒ‰ ๋ถ€๋ถ„์ด ๋  ์ˆ˜ ์žˆ์Œ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ํŠน์ • ๋…ธ๋“œ์˜ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ์ž์‹๋“ค์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ž์‹์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ๋ณด๋Š” ๊ฒƒ์ž„.

[ ์ˆฒ (forest) ]

  • n๊ฐœ์˜ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ํŠธ๋ฆฌ์—์„œ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•ด์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ถ„๋ฆฌ๋œ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•จ.
  • ํ•ต์‹ฌ์€ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด์•ผํ•˜๊ณ , ์ œ๊ฑฐ๊ฐ€ ๋œ ์ƒํƒœ์—์„œ ๋ถ„๋ฆฌ๋œ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ์ง‘ํ•ฉ๋“ค์„ ์˜๋ฏธํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๋ถ„๋ฆฌ๋œ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ์ง‘ํ•ฉ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋กœ ๋ณด๋ฉด๋จ. ( ์„œ๋ธŒ ํŠธ๋ฆฌ๋“ค์„ ๋ฌถ์–ด๋†“์€ ๋…ผ๋ฆฌ์ ์ธ ๊ฐœ๋…? ์ด๋Ÿฐ ๋А๋‚Œ์ž„ )

โœ… 2. ์ด์ง„ ํŠธ๋ฆฌ (Binary Tree)

  • ํŠธ๋ฆฌ ์ค‘์—์„œ ์ฐจ์ˆ˜๊ฐ€ 2์ธ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด์ง„ ํŠธ๋ฆฌ์˜ ์กฐ๊ฑด์€ ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜๋Š” ์ตœ๋Œ€ 2๋ฅผ ๋„˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ฆ‰, ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ตœ๋Œ€ 2๊ฐœ์˜ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ๊ฐ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ๊ตฌ๋ถ„์ด ๋จ.
  • ์ด์ง„ ํŠธ๋ฆฌ์—์„œ ์™ผ์ชฝ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋Š” ์ˆœ์„œ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๊ฒƒ์„ ์ด์šฉํ•ด ํƒ์ƒ‰ ํ•  ๋•Œ ์‚ฌ์šฉ์ด ๋˜๊ธฐ๋„ ํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ์ด๋ฏธ์ง€์˜ ๋…ธ๋“œ์˜ ์•ŒํŒŒ๋ฒณ์˜ ์ˆœ์„œ๋ฅผ ๋ณด๊ณ  ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•ด A -> B -> C ์ด๋Ÿฐ ๊ด€๊ณ„๋กœ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž„.
  • ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ฐ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ๋‹ค์‹œ ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๋จ

(1) ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋†’์ด

[ ์ตœ๋Œ€ ๋†’์ด ]

  • N๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„ ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ๊ณ„์‚ฐ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์ตœ๋Œ€ ๋†’์ด: N์œผ๋กœ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์Œ
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๊ฐ™์€ ๊ฐฏ์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ์ด์ง„ํŠธ๋ฆฌ๊ฐ€ ์ตœ๋Œ€ ๊ฐฏ์ˆ˜๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“ค๋ ค๋ฉด ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๊ฒฝ์‚ฌ์ง€๊ฒŒ ๋งŒ๋“ค์–ด์•ผ  ํ•จ.
  • ์ฆ‰, ๊ฒฝ์‚ฌ์ง€๊ฒŒ ๋งŒ๋“ค๋ฉด ์ตœ๋Œ€ ๋†’์ด๊ฐ€ ํ•ญ์ƒ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜์™€ ๊ฐ™๊ฒŒ ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž„. ์ฆ‰, ์ด ๊ตฌ์กฐ๊ฐ€ ์ตœ๋Œ€ ๋†’์ด๊ฐ€ ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž„.

[ ์ตœ์†Œ ๋†’์ด ]

  • ๋ชจ๋“  ๋‚ด๋ถ€ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ๋กœ์„œ [log2N] + 1 ์ด ๋†’์ด๊ฐ€ ๋จ.
  • 2๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ๊ตฌ์กฐ๋ฅผ ์ตœ๋Œ€ํ•œ ๊ฝ‰ ์ฑ„์› ์„ ๋•Œ ์ตœ์†Œ ๋†’์ด๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.

(2) ์ด์ง„ ํŠธ๋ฆฌ ์ˆœํšŒ ์—ฐ์‚ฐ

  • ๊ฒฐ๊ตญ ์ด์ง„ํŠธ๋ฆฌ ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž„.
  • ์ฆ‰, ์ž๋ฃŒ๊ตฌ์กฐ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ฆฌ์—์„œ ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‚œ ํ›„ ์–ด๋–ป๊ฒŒ ๊ฒ€์ƒ‰ ํ•  ๊ฒƒ ์ธ์ง€์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•จ.
  • ์ฆ‰, ์ผ์ •ํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ ํŠธ๋ฆฌ์— ์žˆ๋Š” ๊ฐ ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ์ˆœํšŒ ์—ฐ์‚ฐ์„ ํ•จ.

[ DLR ( ์ „์œ„ ์ˆœํšŒ: preorder) ]

  • DLR ( Data - Left - Right ) ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์™ผ์ชฝ ์ดํ›„ ์˜ค๋ฅธ์ชฝ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง.
  • ๋ฃจํŠธ ๋…ธ๋“œ ๋ฐฉ๋ฌธ -> ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ๋ฃจํŠธ๋ฅผ ๋จผ์ €๊ฐ€์„œ A ์ถœ๋ ฅ -> ๋‹ค์Œ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์ธ B๋กœ ๊ฐ€์„œ B๋ฅผ ์ถœ๋ ฅํ•จ -> ๊ทธ ๋‹ค์Œ์€ D
  • ์ „์œ„ ์ˆœํšŒ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋  ๊ฒฝ์šฐ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด A -> B -> D -> H -> I -> E -> J -> K -> C ์ˆœ์„œ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค.
  • ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ๋ชจ๋‘ ๋๋‚ด๊ณ  ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ๋ฐฉ๋ฌธ ํ˜•์‹

[ LDR ( ์ค‘์œ„ ์ˆœํšŒ: inorder) ]

  • ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ -> ๋ฃจํŠธ ๋…ธ๋“œ ๋ฐฉ๋ฌธ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๋ฐฉ์‹์ž„.
  • ์ „์œ„๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์ œ์ผ ๋จผ์ € ์‹œ์ž‘์ด ๋˜์—ˆ๋‹ค๋ฉด ์ค‘์œ„ ๋ฐฉ์‹์€ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์šด๋ฐ์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐฉ์‹์ž„.
  • ๊ฐ€์šด๋ฐ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์šด๋ฐ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋จ.

[ LRD ( ํ›„์œ„ ์ˆœํšŒ: postorder) ]

  • ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ -> ๋ฃจํŠธ ๋…ธ๋“œ ๋ฐฉ๋ฌธ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๋ฐฉ์‹์ž„.

(3) ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ (Full Binary Tree)

  • ๊นŠ์ด๊ฐ€ k์ธ ์ด์ง„ ํŠธ๋ฆฌ ์ค‘์—์„œ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2^k - 1 ๊ฐœ์ธ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ๊นŠ์ด๊ฐ€ k์ธ ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” 2^k - 1๊ฐœ ์ด๋ฉฐ, ๋‹จ๋ง ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2^k - 1 ๊ฐœ
  • ์ฆ‰, ๋ชจ๋“  ๋‚ด๋ถ€ ๋…ธ๋“œ๊ฐ€ ์ž์‹์„ 2๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฉฐ, N๋ ˆ๋ฒจ์— ๋งž๊ฒŒ ๋…ธ๋“œ๊ฐ€ ๊ฝ‰์ฐจ์žˆ๋Š” ๊ฒฝ์šฐ์ž„.
  • ์ •๋ฆฌํ•˜๋ฉด, ๊ฐ ๋ ˆ๋ฒจ์—์„œ ๋นˆ์ž๋ฆฌ๊ฐ€ ์—†์ด ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋ชจ๋“  ๋‚ด๋ถ€ ๋…ธ๋“œ๋“ค์€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ์ž„.

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

  • ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ๋ ˆ๋ฒจ์ด k ์ผ ๋•Œ, ๋ ˆ๋ฒจ k-1๊นŒ์ง€๋Š” ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•˜๊ณ , ๋ ˆ๋ฒจ k์—์„œ๋Š” ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฑ„์›Œ์ง„ ํŠธ๋ฆฌ์ž„
  • ์ด ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2^k+1 - 1 ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์œผ๋ฉด์„œ, ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์—ฐ์†์ ์ธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ–๋Š” ํŠธ๋ฆฌ์ž„.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ ˆ๋ฒจ์ด ๊ฝ‰ ์ฐจ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์€ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง„ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•จ.
  • ์™ผ์ชฝ๋ถ€ํ„ฐ ์—ฐ์†์ ์œผ๋กœ ์ฑ„์›Œ์ง€๋Š” ์ƒํƒœ์—ฌ์•ผ ํ•จ. ์ฆ‰, F ๋ฐ‘์— ๋จผ์ € K๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด E ๋ฐ‘์—๋Š” ๋น„์–ด์žˆ์œผ๋ฏ€๋กœ ์•„๋‹˜.
  • ๋˜ํ•œ, ๋ชจ๋“  ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์™€์ „ ํŠธ๋ฆฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์•„๋‹ ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋‹ค ์ฐจ์žˆ์œผ๋ฉด ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ ์ด๋ฉด์„œ, ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.

(5) ๊ฒฝ์‚ฌ ์ด์ง„ ํŠธ๋ฆฌ (Skewed Binary Tree)

  • ํ•œ ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๊ฐ€์ง€๊ฐ€ ๋ป—์–ด ๋‚˜๊ฐ„ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•จ.
  • ์™ผ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๊ฐ€์ง€๊ฐ€ ๋ป—์–ด ๋‚˜๊ฐ„ ๊ฒฝ์‚ฌ ์ด์ง„ ํŠธ๋ฆฌ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋งŒ ๊ฐ€์ง€๊ฐ€ ๋ป—์–ด ๋‚˜๊ฐ„ ๊ฒฝ์‚ฌ ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ์Œ.
  • ๊ฐ™์€ ๊ฐฏ์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ์ƒํƒœ์—์„œ ๊นŠ์ด๊ฐ€ ๊ฐ€์žฅ ํฐ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฒฝ์‚ฌ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

(6) ์ •๋ฆฌํ•˜๋ฉด

  • ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ: ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ๋“œ, ๋ฅ˜ํŠธ, ์ž์‹ ๋…ธ๋“œ, ๋ถ€๋ชจ ๋…ธ๋“œ, ์žŽ ๋…ธ๋“œ, ๊ฐ„์„ , ์ฐจ์ˆ˜, ๋ ˆ๋ฒจ์ด ์กด์žฌํ•จ. ๋˜ํ•œ, ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์‚ฌ์ดํด์ด ์—†๋Š” ๊ตฌ์กฐ์ด๋ฉฐ, ํŠธ๋ฆฌ์˜ ๋Œ€ํ‘œ์ ์ธ ์ข…๋ฅ˜๋กœ๋Š” ์ด์ง„ ํŠธ๋ฆฌ, ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ, ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋“ฑ์ด ์žˆ์Œ.
  • ์ด์ง„ ํŠธ๋ฆฌ, ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ, ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋“ฑ์€ ๊ฒฐ๊ตญ ํŠธ๋ฆฌ ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํŒŒ์ƒ ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ์™€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์ด์ง„ ํŠธ๋ฆฌ์—์„œ ๊ตฌ์กฐ์  ์ œ์•ฝ์„ ๋‘” ํŒŒ์ƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๊ฐ’์˜ ๊ทœ์น™์„ ๋‘” ํŒŒ์ƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ˆœํšŒ ์—ฐ์‚ฐ: ์ด์ง„ ํŠธ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•์ธ ์ฆ‰, ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ์ด์ง„ ํŠธ๋ฆฌ ์ „์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.

 


โœ… 3. ๊ทธ๋ž˜ํ”„

  • ์ •์ (vertex) ๋“ค์˜ ์œ ํ•œ ์ง‘ํ•ฉ V์™€ ๋‘ ๊ฐœ์˜ ์ •์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)๋“ค์˜ ์œ ํ•œ ์ง‘ํ•ฉ E๋กœ ์ •์˜
  • G=(V,E)๋กœ ํ‘œ์‹œ๊ฐ€ ๋จ. ( vertex = node ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ )

(1) ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ (undirected graph)

  • ๊ฐ„์„ ์ด ๋ฐฉํ–ฅ์„ฑ์ด ์—†๋Š” ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋ฐฉํ–ฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•จ.

(2) ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ (directed graph)

  • ๋‘ ์ •์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ ์ด ๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ€์ง€๋Š” ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ฆ‰, ๋ฐฉํ–ฅ์ด ์žˆ๋Š” ๊ณณ์œผ๋กœ๋งŒ ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด๋™์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ์ž„.

(3) ๊ทธ๋ž˜ํ”„์˜ ์ง‘ํ•ฉ ํ‘œํ˜„ ๋ฐฉ๋ฒ•

  • V ๋Š” ์ •์ , E ๋Š” ๊ฐ„์„ ์„ ์˜๋ฏธํ•จ
  • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์ธ ๊ฒฝ์šฐ "()" ์†Œ ๊ด„ํ˜ธ๋กœ ํ‘œํ˜„์ด ๋˜๋ฉฐ, ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋Š” "<>" ๊บฝ์ƒˆ๋กœ ํ‘œํ˜„์ด ๋œ๋‹ค.
  • ๋˜ํ•œ, ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ์–‘๋ฐฉํ–ฅ์„ ๊ฐ€๋ฅดํ‚ค๊ธฐ ๋•Œ๋ฌธ์— 1,4 ๋˜๋Š” 4,1 ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉ์„ ํ•ด ์ค‘๋ณต์„ ์—†์•ค๋‹ค.

(4) ๊ทธ๋ž˜ํ”„์˜ ์šฉ์–ด

  • ๋‘ ์ •์ ์ด ๊ฐ„์„ ์œผ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ๋‘ ์ •์ ์€ ์ธ์ ‘(adjacent)ํ•ด ์žˆ๋‹ค๊ณ  ํ•˜๋ฉฐ, ํ•ด๋‹น ๊ฐ„์„ ์€ ๋‘ ์ •์ ์— ๋ถ€์ˆ˜(incident) ๋˜์—ˆ๋‹ค๊ณ  ํ•จ.
  • ์ธ์ ‘ํ•œ๋‹ค: ์ •์  ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•จ.
  • ๋ถ€์ˆ˜๋˜์—ˆ๋‹ค: ์ •์ ๊ณผ ๊ฐ„์„  ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, "์ธ์ ‘ํ•œ๋‹ค" ๋Š” ๋‘ ์ •์ ์ด ๊ฐ„์„ ์œผ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ์„ ์˜๋ฏธํ•˜๊ณ , "๋ถ€์ˆ˜๋˜๋‹ค" ๋Š” ์ด ๊ฐ„์„ ์ด ์ด ์ •์ ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ž„.

[ ๊ฒฝ๋กœ(path) ]

  • ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์˜ ์ˆœ์ฐจ์  ๋‚˜์—ด์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์˜ˆ์‹œ: A -> B -> C -> D ( A ์—์„œ ์‹œ์ž‘ํ•ด B, C๋ฅผ ๊ฑฐ์ณ D๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์˜๋ฏธํ•จ )

[ ๊ฒฝ๋กœ์˜ ๊ธธ์ด ]

  • ๊ฒฝ๋กœ์— ํฌํ•จ๋œ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋กœ ํ‘œํ˜„์„ ํ•จ.
  • ์˜ˆ์‹œ: A -> B -> C -> D ( ๊ฐ„์„ ์€ A-B, B-C, C-D ์ด๋ ‡๊ฒŒ ์ด 3๊ฐœ, ๋”ฐ๋ผ์„œ ๊ธธ์ด = 3 ์ด ๋จ. )

[ ๋‹จ์ˆœ ๊ฒฝ๋กœ(simple path) ]

  • ์ค‘๋ณต๋œ ์ •์  ์—†์ด ์—ฐ๊ฒฐ๋œ ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๊ฒฝ๋กœ ์ƒ์— ์กด์žฌํ•˜๋Š” ์ •์ ๋“ค์ด ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๊ฐ™์€ ์ง‘์„ ๋‘ ๋ฒˆ ๋“ค๋ฅด์ง€ ์•Š๊ณ  ๊ธธ์„ ๊ฐ€๋Š” ๊ฒƒ
  • ์˜ˆ์‹œ: A -> B -> C -> D -> E ( ์ค‘๊ฐ„์— ๊ฐ™์€ ์ •์ ์ด ์—†์œผ๋ฉด ๋‹จ์ˆœ ๊ฒฝ๋กœ๊ฐ€ ๋จ )

[ ์‚ฌ์ดํด(cycle) ]

  • ์„ธ ๊ฐœ ์ด์ƒ์˜ ์ •์ ์„ ๊ฐ€์ง„ ๊ฒฝ๋กœ ์ค‘์—์„œ ์‹œ์ž‘ ์ •์ ๊ณผ ๋ ์ •์ ์ด ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•จ. ( ์ฆ‰, ์›์„ ์ด๋ฃจ๋Š” ๊ฒฝ๋กœ์ž„ )
  • ๋‹จ์ˆœ ์‚ฌ์ดํด์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ค‘๋ณต์ด ๋˜๋Š” ์ •์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ.
  • ์˜ˆ์‹œ: A -> B -> C -> A  ( A์—์„œ ์‹œ์ž‘ํ•ด์„œ B, C๋ฅผ ๊ฑฐ์ณ ๋‹ค์‹œ A๋กœ ๋Œ์•„์˜ค๋Š” ๊ธธ )

[ ๋‹จ์ˆœ ์‚ฌ์ดํด(simple cycle) ]

  • ์ค‘๋ณต๋œ ์ •์  ์—†์ด ์‹œ์ž‘์ ์œผ๋กœ ๋Œ์•„์˜ค๋Š” ์‚ฌ์ดํด์„ ์˜๋ฏธํ•˜๋ฉฐ, ์‹œ์ž‘ ์ •์ ๊ณผ ๋ ์ •์ ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ์ •์ ์ด ๋‹ค๋ฅธ ์‚ฌ์ดํด
  • ์‰ฝ๊ฒŒ๋งํ•ด, ์›์„ ๋Œ๋˜, ํ•œ ๋ฒˆ ๋“ค๋ฅธ ์ •์ ์€ ๋‹ค์‹œ ์ง€๋‚˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ž„.
  • ์˜ˆ์‹œ: A -> B -> C -> A  = ๋‹จ์ˆœ ์‚ฌ์ดํด / A -> B -> C -> B -> A = ๊ทธ๋ƒฅ ์‚ฌ์ดํด๋กœ ๋ณด๋ฉด ๋ ๋“ฏ.

[ ๋‘ ์ •์ ์€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค ]

  • ๋‘ ์ •์  ์‚ฌ์ด์— ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž„. ( ์ฆ‰, ๊ฐˆ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋“ฏ )

[ ๊ทธ๋ž˜ํ”„๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค ]

  • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๋“ค ์‚ฌ์ด์— ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•จ ( ๋ชจ๋“  ์ •์ ๋“ค์ด ์—ฐ๊ฒฐ ๋œ ์ƒํƒœ )

[ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ํ•œ ์ •์ ์˜ ์ฐจ์ˆ˜ ]

  • ์ •์ ์— ๋ถ€์ˆ˜๋œ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ. ( ์ฆ‰, ์ •์ ์— ๋ถ™์–ด์žˆ๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ )

[ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ •์ ์˜ ์ฐจ์ˆ˜๋Š” ์ง„์ž… ์ฐจ์ˆ˜์™€ ์ง„์ถœ ์ฐจ์ˆ˜๋กœ ๋‚˜๋‰จ ]

  • ์ง„์ž… ์ฐจ์ˆ˜(indegree): ๋‹ค๋ฅธ ์ •์ ์—์„œ ํ•ด๋‹น ์ •์ ์œผ๋กœ ํ–ฅํ•˜๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ.
  • ์ง„์ถœ ์ฐจ์ˆ˜(outdegree): ํ•ด๋‹น ์ •์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ์œผ๋กœ ํ–ฅํ•˜๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ.
  • ์‰ฝ๊ฒŒ๋งํ•ด ๋ฐฉํ–ฅ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ํŠน์ • ์ •์ ์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์ฐจ์ˆ˜๋Š” ์ง„์ถœ ์ฐจ์ˆ˜, ๋“ค์–ด์˜ค๋Š” ์ฐจ์ˆ˜๋ฅผ ์ง„์ž… ์ฐจ์ˆ˜๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.

[ ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„ ]

  • ํŠธ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”„์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ ๋ด„ ์ฆ‰, ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š์•„ ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•จ
  • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ๋ชจ๋“  ์ •์ ์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด์„œ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•จ.

โœ… 4. ๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„

  • ๊ทธ๋ž˜ํ”„๋ฅผ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ์ ‘ ํ–‰๋ ฌ(adjacency matrix) ์ด๋‚˜ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(adjacency list)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•จ.
  • ์ธ์ ‘ ํ–‰๋ ฌ์„ ์ด์šฉํ•˜์—ฌ n๊ฐœ์˜ ์ •์ ์„ ๊ฐ€์ง„ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” n * n ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ด์šฉํ•จ.
  • ์ธ์ ‘ํ–‰๋ ฌ A[i][j] ์— ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ๊ทธ๋ž˜ํ”„์˜ ์ •์  vi ์—์„œ ์ •์  vj์‚ฌ์ด์— ๊ฐ„์„ ์ด ์กด์žฌํ•จ์„ ์˜๋ฏธํ•˜๊ณ , A[i][j]์˜ ๊ฐ’์€ 1๋กœ ์ •ํ•จ

(1) ์ธ์ ‘ํ–‰๋ ฌ

  • (1,2) , (1,4) ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋œ ์ƒํƒœ์ด๋ฉฐ, ์˜ค๋ฅธ์ชฝ ์ธ์ ‘ํ–‰๋ ฌ์„ ์‚ฌ์šฉํ•ด ํ‘œํ˜„์„ ํ•˜๋ฉด 1,2 ์™€ 1,4 ์— ์ˆซ์ž 1์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
  • ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ๋ถ€๋ถ„์—๋Š” 0์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

(2) ์ธ์ ‘๋ฆฌ์ŠคํŠธ

  • ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์ •์ ๋“ค์ด ์ธ์ ‘ํ•ด์žˆ๋Š” ์ •์ ๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

(3) ๊ทธ๋ž˜ํ”„์˜ ํƒ์ƒ‰

  • ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‰ฝ๊ฒŒ๋งํ•ด, ํŠธ๋ฆฌ์˜ ์ˆœํšŒ์™€ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋จ.
  • ๊ทธ๋ž˜ํ”„์˜ ํƒ์ƒ‰์€ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(depth first search) ๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(breadth first search) ์ด ์žˆ์Œ.

(4) ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰

  • ์ตœ๊ทผ์˜ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ํ•œ ํ•˜๋‚˜์˜ ์ •์ ์„ ์šฐ์„ ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ์ตœ์ข…์ ์ธ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋Š” (1, 2, 4, 5, 7, 6, 3) ์ด ๋จ.
  • ์ตœ์ข… ๋ฐฉ๋ฌธ ์ˆœ์„œ๋Š” ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ
  • ๊นŠ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ์šฐ์„  ์ˆœ์œ„๋กœ ๋‘๊ธฐ ๋•Œ๋ฌธ์—  1 -> 2 -> 4๋กœ ๋‚ด๋ ค๊ฐ„ ๋’ค 5 -> 7 ์‹์œผ๋กœ ์ œ์ผ ๊นŠ์€๊ณณ ๊นŒ์ง€ ๊ฐ”๋‹ค๊ฐ€ ๋Œ์•„์˜ด
  • 1์—์„œ ์•„๋ฌด ๊ฐ„์„  2, 3 ๋‘˜ ์ค‘ ํ•˜๋‚˜ ์žก๊ณ  ๋‚ด๋ ค๊ฐ€๋Š” ๋А๋‚Œ์ž„.

(5) ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰

  • ์ตœ๊ทผ์˜ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ํ•œ ๋ชจ๋“  ์ •์ ์„ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ์‹์ž„.
  • ์ตœ์ข…์ ์ธ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋Š” (1, 2, 3, 4, 5, 6, 7) ์ด ๋  ์ˆ˜ ์žˆ์Œ.
  • ์ตœ์ข… ๋ฐฉ๋ฌธ ์ˆœ์„œ๋Š” ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ
  • ์ฒ˜์Œ 1์—์„œ 2, 3์„ ๋‹ค ์ถœ๋ ฅํ•˜๊ณ  2๋ฅผ ์„ ํƒํ•ด์„œ 4, 5 ์ถœ๋ ฅํ•˜๊ณ  3์—๊ฐ€์„œ 6์„ ์ถœ๋ ฅ ํ•œ ๋’ค ๋งˆ์ง€๋ง‰ 7์„ ์ถœ๋ ฅํ•จ

'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต > ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 6๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(2)  (0) 2025.10.01
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 3๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(1)  (0) 2025.09.17
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 10๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(2)  (0) 2025.09.15
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)  (0) 2025.09.08
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 5๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(1)  (0) 2025.09.04
'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 6๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(2)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 3๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(1)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 10๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(2)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (181)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (41)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก  (9)
        • ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ (6)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
      • ๐Ÿ› ๏ธBackend (64)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โš™๏ธC (8)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (64)
      • ์ •๋ณด (2)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Python
    ์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 
    C ์–ธ์–ด
    spring
    ๋ฐฐ์—ด
    Spring Framework
    C์–ธ์–ด
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ํ•จ์ˆ˜
    ๋ฐฉํ†ต๋Œ€
    ๋ฐฉ์†ก๋Œ€
    ์ž…์ถœ๋ ฅ
    ์ž๋ฐ”
    ์œ ๋น„์ฟผํ„ฐ์Šค
    Java
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    C
    ํŒŒ์ด์ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 4๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(2)
์ƒ๋‹จ์œผ๋กœ

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