[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ] ์ž๋ฃŒ ๊ตฌ์กฐ - ํŠธ๋ฆฌ(Tree), ๊ทธ๋ž˜ํ”„(Graph)

JiEunยท2023๋…„ 5์›” 11์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

ํŠธ๋ฆฌ(Tree), ๊ทธ๋ž˜ํ”„(Graph)์— ๋Œ€ํ•œ ์ด๋ก ์„ ํ•™์Šตํ•˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€์–ด ๋ณด์•˜๋‹ค.


๐Ÿ“ ๋ฐฐ์šด ๊ฒƒ

โœ”๏ธ ํŠธ๋ฆฌ(Tree)

  • ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๋‚˜๋ฌด์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. (์ •ํ™•ํžˆ๋Š” ๋‚˜๋ฌด๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์–ด ๋†“์€ ๋“ฏํ•œ ๋ชจ์Šต)
  • ์—ฌ๋Ÿฌ ๊ตฌ์กฐ ๋‹จ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ํ•œ ๊ตฌ์กฐ๋กœ, ํ•˜๋‚˜์˜ ๋ฟŒ๋ฆฌ๋กœ ๋ถ€ํ„ฐ ๊ฐ€์ง€๊ฐ€ ์‚ฌ๋ฐฉ์œผ๋กœ ๋ป—์€ ํ˜•ํƒœ

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

  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์ธ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ
    - ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
  • ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‚˜๋‰œ๋‹ค.
    - ์ด์ง„ํŠธ๋ฆฌ(Full binary tree), ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Complete binary tree), ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ(Perfect binary tree)

์†Œ์ฃผ ๋šœ๊ป‘ ๊ฒŒ์ž„ (์—… ์•ค ๋‹ค์šด) ์ฒ˜๋Ÿผ ๊ธฐ์ค€ ๊ฐ’์„ ์ •ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š”๋‹ค.

์ด์ง„ํŠธ๋ฆฌ ํŠน์ง•

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

โœ”๏ธ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)

์ด์ง„ ํƒ์ƒ‰?

  • ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํŠน์ •ํ•œ ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•œ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜
  • ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์ด ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์˜ค๋ฅธ์ชฝ์€ ํฐ ๊ฐ’์ด ์œ„์น˜ํ•˜๋Š” ํŠธ๋ฆฌ๋กœ ์ „๋ถ€ ์ •๋ ฌ ๋˜์–ด์žˆ๋‹ค.

โ—๏ธ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์™€ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค.

์ฐจ์ด์ ์ด ์žˆ๋‹ค๋ฉด ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ •๋ ฌ ๋˜์–ด์žˆ๊ณ  ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์ •๋ ฌ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค.

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ํŠน์ง•

  • ๊ฐ ๋…ธ๋“œ์— ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ํ‚ค(key)๊ฐ€ ์žˆ๋‹ค.
  • ๋ฃจํŠธ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ : ํ•ด๋‹น ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ์ž‘์€ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  • ๋ฃจํŠธ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ : ํ•ด๋‹น ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ํฐ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  • ์ขŒ์šฐ ์„œ๋ธŒ ํŠธ๋ฆฌ๋„ ๋ชจ๋‘ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—ฌ์•ผ ํ•œ๋‹ค.

๋ชจ๋“  ์™ผ์ชฝ ์ž์‹์˜ ๊ฐ’์ด ๋ฃจํŠธ๋‚˜ ๋ถ€๋ชจ๋ณด๋‹ค ์ž‘๊ณ , ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ๊ฐ’์ด ๋ฃจํŠธ๋‚˜ ๋ถ€๋ชจ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

๊ธฐ์กด ์ด์ง„ ํŠธ๋ฆฌ๋ณด๋‹ค ํƒ์ƒ‰์ด ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
ํŠธ๋ฆฌ์˜ ๋†’์ด๊ฐ€ h(height)๋ผ๋ฉด o(h)์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.
ํŠธ๋ฆฌ ์•ˆ์— ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์—†๋”๋ผ๋„ ์ตœ๋Œ€ h๋ฒˆ(ํŠธ๋ฆฌ์˜ ๋†’์ด) ๋งŒํผ ์—ฐ์‚ฐ๊ณผ ํƒ์ƒ‰์ด ์ง„ํ–‰๋œ๋‹ค.
1. ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค์™€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ต ํ•œ๋‹ค.
- ๋งŒ์•ฝ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด๋ผ๋ฉด ํƒ์ƒ‰์„ ์ข…๋ฃŒ
2. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰
3. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰

์ „์œ„ ์ˆœํšŒ(preorder traverse)

  1. ๊ฐ€์žฅ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๋Š” ๋…ธ๋“œ๋Š” ๋ฃจํŠธ์ด๋‹ค.
  2. ๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•ด ์™ผ์ชฝ์˜ ๋…ธ๋“œ๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‘˜๋Ÿฌ๋ณธ ๋’ค
  3. ์™ผ์ชฝ์˜ ๋…ธ๋“œ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ œ์ผ ๋จผ์ € ๋ฐฉ๋ฌธ๋˜๋Š” ์ˆœํšŒ ๋ฐฉ์‹
(ํŠธ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉ)

์ „์œ„ ์ˆœํšŒํ•  ๊ฒฝ์šฐ

1 - 6 - 4 - 7 - 9 - 8 - 10 - 5 - 2 - 3 - 11

์ค‘์œ„ ์ˆœํšŒ(inorder traverse)

  1. ๋ฃจํŠธ๋ฅผ ๊ฐ€์šด๋ฐ์— ๋‘๊ณ  ์ˆœํšŒํ•œ๋‹ค.
  2. ์ œ์ผ ์™ผ์ชฝ ๋์— ์žˆ๋Š” ๋…ธ๋“œ ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๊ธฐ ์‹œ์ž‘ํ•ด
  3. ๋ฃจํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ธ์ชฝ์— ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด ๋ฃจํŠธ๋ฅผ ๊ฑฐ์ณ
  4. ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋…ธ๋“œ๋กœ ์ด๋™ํ•ด ๋งˆ์ € ํƒ์ƒ‰ํ•œ๋‹ค.

๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฐฉ๋ฌธ ์ค‘๊ฐ„์— ๋ฐฉ๋ฌธ๋˜๋Š” ์ˆœํšŒ ๋ฐฉ์‹
(์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉ)

์ค‘์œ„ ์ˆœํšŒํ•  ๊ฒฝ์šฐ

7 - 4 - 8 - 9 - 10 - 6 - 5 - 1 - 3 - 2 11

ํ›„์œ„ ์ˆœํšŒ(postorder traverse)

  1. ๋ฃจํŠธ๋ฅผ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ถ€ํ„ฐ ์ˆœํšŒํ•œ๋‹ค.
  2. ์ œ์ธ ์™ผ์ชฝ ๋์— ์žˆ๋Š” ๋…ธ๋“œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๊ธฐ ์‹œ์ž‘ํ•ด
  3. ๋ฃจํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ด ์ˆœํšŒํ•œ ๋’ค,
  4. ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋ฃจํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค.

ํŠธ๋ฆฌ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
(์ž์‹ ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ์‚ญ์ œ๋˜์–ด์•ผ ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ)

์ค‘์œ„ ์ˆœํšŒํ•  ๊ฒฝ์šฐ

7 - 8 - 10 - 9 - 4 - 5 - 6 - 3 - 11 - 2 - 1

๋ ˆ๋ฒจ ์ˆœํšŒ (levelorder traverse)

  1. ํŠธ๋ฆฌ์˜ ๋ ˆ๋ฒจ ๊ธฐ์ค€์œผ๋กœ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธ ์ˆœํšŒ ํ•œ๋‹ค.
  2. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘์œผ๋กœ ์•„๋ž˜๋กœ ๋ป—์–ด๋‚˜๊ฐ€ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋ฉฐ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ์ด 1์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ
  3. ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐˆ ์ˆ˜๋ก ๋ ˆ๋ฒจ์€ ์ฆ๊ฐ€ํ•˜๋Š” ํŠน์ง•์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  4. ๋™์ผํ•œ ๋ ˆ๋ฒจ์— ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ์ˆœ์„œ๋กœ ๋…ธ๋“œ๋ฅผ ์ˆœํšŒํ•œ๋‹ค.

๋ ˆ๋ฒจ ์ˆœํšŒํ•  ๊ฒฝ์šฐ

1 - 6 - 2 - 4 - 5 - 3 - 11 - 7 - 9 - 8 - 10

์ˆœํšŒ ๋ฐฉ์‹์„ ๋‚˜๋ˆ„๋Š” ์ด์œ ?

๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ผ์ •ํ•œ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๊ณ ,
ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด์„œ๋„ ์ˆœํšŒ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •์˜๋Š” ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ

โœ”๏ธ ๊ทธ๋ž˜ํ”„(Graph)

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ ์ด ์„œ๋กœ ๋ณต์žกํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ
  • ๊ฑฐ๋ฏธ์ค„ ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ ์ด ์„ ์œผ๋กœ ์ด์–ด์ ธ ์žˆ๋Š” ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ๋ง๊ณผ ๊ฐ™์€ ๋ชจ์Šต

๊ทธ๋ž˜ํ”„์˜ ๊ตฌ์กฐ

  • ์ง์ ‘์ ์ธ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‘ ์  ์‚ฌ์ด๋ฅผ ์ด์–ด์ฃผ๋Š” ์„ ์ด ์žˆ๋‹ค.
  • ๊ฐ„์ ‘์ ์ธ ๊ด€๊ณ„์ธ ๊ฒฝ์šฐ ๋ช‡ ๊ฐœ์˜ ์ ๊ณผ ์„ ์— ๊ฑธ์ณ ์ด์–ด์ง„๋‹ค.
  • ์ •์ (vertex, node) : ํ•˜๋‚˜์˜ ์ ์„ ๊ทธ๋ž˜ํ”„์—์„œ ์ •์ ์ด๋ผ ํ•œ๋‹ค.
  • ๊ฐ„์„ (edge) : ์ •์ ์„ ์ด์–ด๋‘๋Š” ๊ฐ ํ•˜๋‚˜์˜ ์„ ์€ ๊ฐ„์„ ์ด๋ผ ํ•œ๋‹ค.

ํ‘œํ˜„ ๋ฐฉ์‹

์ธ์ ‘ ํ–‰๋ ฌ


1์ด ๊ฐ„์„ ์„ ์˜๋ฏธ ํ•œ๋‹ค.

  • ๋งŒ์•ฝ A๋ผ๋Š” ์ •์ ๊ณผ B๋ผ๋Š” ์ •์ ์ด ์žˆ๋‹ค๋ฉด 1(true), ์ด์–ด์ ธ ์žˆ์ง€ ์•Š๋‹ค๋ฉด 0(false)๋กœ ํ‘œ์‹œํ•œ ์ผ์ข…์˜ ํ‘œ
  • ๋งŒ์•ฝ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์ธ ๊ฒฝ์šฐ 1 ๋Œ€์‹  ๊ด€๊ณ„์—์„œ ์˜๋ฏธ ์žˆ๋Š” ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
  • ๋‘ ์ •์ ์„ ์ด์–ด์ฃผ๋Š” ๊ฐ„์„ ์ด ์žˆ๋‹ค๋ฉด ๋‘ ์ •์ ์€ ์ธ์ ‘ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ์ •์ ๋“ค์ด ์ธ์ ‘ํ•œ ์ƒํƒœ์ธ์ง€๋ฅผ ํ‘œ์‹œํ•œ ํ–‰๋ ฌ๋กœ 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. [0][1]

์ธ์ ‘ ๋ฆฌ์ŠคํŠธ


  • ๊ฐ ์ •์ ์ด ์–ด๋–ค ์ •์ ๊ณผ ์ธ์ ‘ํ•˜๋Š”์ง€๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ํ‘œํ˜„
  • ๊ฐ ์ •์  ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ๋ฆฌ์ŠคํŠธ๋Š” ์ž์‹ ๊ณผ ์ธ์ ‘ํ•œ ๋‹ค๋ฅธ ์ •์ ์„ ๋‹ด๊ณ  ์ž‡๋‹ค.

์ธ์ • ํ–‰๋ ฌ, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋Š” ์–ธ์ œ ์‚ฌ์šฉ?

์ธ์ ‘ ํ–‰๋ ฌ

  • ๋‘ ์ •์  ์‚ฌ์ด์— ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€, ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ์— ์šฉ์ด
  • ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒฝ๋กœ(shortest path)๋ฅผ ์ฐพ๊ณ ์ž ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ

์ธ์ ‘ ๋ฆฌ์ŠคํŠธ

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰
  • ๋…ธ๋“œ์˜ ์ธ์ ‘ํ•œ ์ด์›ƒ๋“ค์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ  ์ด์›ƒ์˜ ์ด์›ƒ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ

์ตœ๋‹จ ๊ฒฝ๋กœ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ

BFS๋Š” ํ˜„์žฌ ์žˆ๋Š” ๋…ธ๋“œ์—์„œ ๊ฐ€๊นŒ์šด ๊ณณ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋„์ค‘ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌํ•œ ํ•ด๋‹ต์ด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ผ๋Š” ๋ณด์žฅ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ

  • ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(์ฃผ๋กœ ์Šคํƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.)
  • ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ•œ ๊นŠ๊ฒŒ ๋“ค์–ด ๊ฐ„ ํ›„ ๋” ์ด์ƒ ๊ฐˆ ์ˆ˜ ์—†์„ ๋•Œ ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.
  • ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋ฅผ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ํ›„, ์›ํ•˜๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ฉด ๋‹ค์Œ ๊ฒฝ๋กœ๋กœ ๋„˜์–ด๊ฐ€ ํƒ์ƒ‰ํ•œ๋‹ค.

โœ๏ธ ๋งˆ์น˜๋ฉฐ

ํŠธ๋ฆฌ(Tree), ๊ทธ๋ž˜ํ”„(Graph)์— ๋Œ€ํ•œ ์ด๋ก ์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•ด๋‹น ๊ณผ ํ•™์ƒ์ด ํ•œ ํ•™๊ธฐ ๋™์•ˆ ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๊ฑธ ์ดํ‹€ ๋งŒ์— ๋ฐฐ์šธ๋ ค๊ณ  ํ•˜๋‹ˆ ์–ด๋ ค์šด๊ฑด ์‚ฌ์‹ค์ด๋‹ค.

๊ทธ๋ž˜๋„ ์–ด๋–ค์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋งŒ ์•Œ์•„๋„ ๊ดœ์ฐฎ์ง€ ์•Š์„๊นŒ ์‹ถ์–ด์„œ
๋„ํ˜•์„ ๊ทธ๋ ค ๊ฐ™์ด ์ฒจ๋ถ€ํ•ด ๋‘์—ˆ๋‹ค.

๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ์ฆ˜... ์†”์งํžˆ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค.

๋ถ„๋ช… ๋‚˜์ค‘์— ๊ฐ€๋ฉด ํ•„์š”ํ•˜๊ฒ ์ง€๋งŒ...
์ง€๊ธˆ์€ ๋ ˆํผ๋Ÿฐ์Šค ์ฝ”๋“œ ์ฐธ๊ณ ํ•˜๋ฉด์„œ
์ด๋Ÿฐ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ตฌ๋‚˜.. ์ •๋„๋กœ ์ตํ˜€ ๋‘๋ ค๊ณ  ํ•œ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€