๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ SSP ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋น„ํ•ด์„œ ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ•˜์ง€๋งŒ ์Œ์ˆ˜ ๊ฐ„์„ ์ด ์žˆ์„ ๋•Œ๋Š” ํ•ด๋‹ต์„ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ ์Œ์ˆ˜ ๊ฐ„์„ ์ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค๋ฉด ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ณ , ์–‘์ˆ˜ ๊ฐ„์„ ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค๋ฉด, ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ชจ๋‘ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž.

Algorithm Concept

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ BFS์— ๊ฐ„์„  ๊ฑฐ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‘ ๊ฐœ์˜ ์ •์  ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  1. S : ํ•ด๋‹น ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๊ฐ€ ์ด๋ฏธ ๊ตฌํ•ด์ง„ ์ •์ ๋“ค
  2. Q : S์— ์†ํ•˜์ง€ ์•Š๋Š” ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์ •์ ๋“ค

๊ทธ๋ฆฌ๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค.

  1. ์‹œ์ž‘์ ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ •์ ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์–‘์˜ ๋ฌดํ•œ๋Œ€๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์‹œ์ž‘์ ์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
  2. ๋ชจ๋“  ์ •์ ์„ ์ง‘ํ•ฉ Q์— ๋„ฃ๋Š”๋‹ค.
  3. Q์—์„œ ๊ฐ€์žฅ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์งง์€ ์ •์ ์„ ๊บผ๋‚ธ๋‹ค. ์ด ์ž‘์—…์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜์ž.
  4. ๊บผ๋‚ธ ์ •์ ๊ณผ ์ด์–ด์ง„ ๋ชจ๋“  ์ •์ ์— ๋Œ€ํ•ด Relaxation์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  5. ์ง‘ํ•ฉ Q๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์‹œ์ž‘ ์ง€์ ์—์„œ๋ถ€ํ„ฐ ์ธ์ ‘ํ•ด ์žˆ๋Š” ๋ชจ๋“  ์ •์ ๋“ค์— ๋Œ€ํ•ด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š” ์ •์ ์˜ ์œ„์น˜๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ์ •์ ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ์ˆœ๊ฐ„ ์šฐ๋ฆฌ๊ฐ€ ๊ฒ€์‚ฌํ•˜๊ณ  ์žˆ๋Š” ์ •์ ์— ๋Œ€ํ•œ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋”ํ•ด๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Greedy Algorithm์˜ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง„๋‹ค.

Example

์œ„์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ ธ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, A๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ํ•˜๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด๋ณด์ž

Phase 1

  1. ์šฐ์„  ๊ฐ ์ •์ ์ด ๊ฐ€์ง€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ฐ’์„ ์–‘์˜ ๋ฌดํ•œ๋Œ€๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค. ์ด๋•Œ ์‹œ์ž‘์ ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
  2. ๋ชจ๋“  ์ •์ ์„ Q ์— ๋„ฃ๋Š”๋‹ค.

Phase 2

  1. ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ์ •์ ์„ ๊บผ๋‚ธ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†์‰ฝ๊ฒŒ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์—๋Š” ์‹œ์ž‘์ ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ •์ ๋“ค์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์–‘์˜ ๋ฌดํ•œ๋Œ€๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์‹œ์ž‘์ ์ด ์ถ”์ถœ๋œ๋‹ค.
  2. A๊ฐ€ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— A์™€ ์ธ์ ‘ํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๋“ค์„ ๋ฐฉ๋ฌธํ•ด์„œ Relaxation์œผ๋กœ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. A์™€ ์ธ์ ‘ํ•œ ์ •์ ๋“ค์„ ๋‹ค ์ฒดํฌํ•ด๋ณด๋ฉด,
    • B ์ •์ : A์—์„œ B๋กœ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋Š” ๊ฐ„์„  ๊ฐ€์ค‘์น˜์ธ 9์ด๋‹ค. ํ˜„์žฌ B์—๋Š” ์–‘์˜ ๋ฌดํ•œ๋Œ€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋” ์ž‘์€ ๊ฐ’์ธ 9๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
    • D ์ •์ : ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด D์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 14๊ฐ€ ๋œ๋‹ค.
    • E ์ •์ : ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด E์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 15๊ฐ€ ๋œ๋‹ค.
  3. ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ์„ ์ˆœ์œ„ ํ์˜ ๋ฃจํŠธ๋…ธ๋“œ๋„ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ์ƒ๊ฐํ•˜์ž.

Phase 3

์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ์ž‘์ด๋‹ค.

  1. A์˜ ๋…ธ๋“œ๋“ค์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๊ฐ€ ๋๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์‹œ ํ์—์„œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ์ •์ ์„ ๊บผ๋‚ธ๋‹ค. ์ด๋•Œ B์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง๊ธฐ ๋•Œ๋ฌธ์— B๊ฐ€ ์„ ํƒ๋œ๋‹ค.
  2. B์™€ ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์— ๋Œ€ํ•œ Relaxation์„ ์ง„ํ–‰ํ•œ๋‹ค. B๋Š” C์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Relaxation์„ ๋๋‚ด๋ฉด C์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 9 + 20 = 29์œผ๋กœ ๊ฐฑ์‹ ๋œ๋‹ค.

Phase 4

ํ์—์„œ ์ •์  ํ•˜๋‚˜๋ฅผ ๋˜ ๋ฝ‘์•„๋ณด๋ฉด ์ด๋ฒˆ์—” D๊ฐ€ ๋‚˜์˜จ๋‹ค. D์™€ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ •์ ๋“ค์— ๋Œ€ํ•ด์„œ Relaxation์„ ์ˆ˜ํ–‰ํ•ด๋ณด์ž.

  1. ์ •์  E : ์ •์  D๋ฅผ ๊ฑฐ์ณ์„œ ์ •์  E๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 14 + 7 = 21์ด๋‹ค. ์ •์  E์—๋Š” ์ด๋ฏธ ์ตœ๋‹จ ๊ฒฝ๋กœ์ธ 15๊ฐ€ ์ €์ •๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด ๊ฐ’์ด D๋กœ๋ถ€ํ„ฐ ๊ณ„์‚ฐ๋œ ๊ฐ’๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ํ•œ๋‹ค.
  2. ์ •์  F : ์ •์  F์—๋Š” ์–‘์˜ ๋ฌดํ•œ๋Œ€๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, D๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ 14 + 7 = 21์ด ์ƒˆ๋กœ์šด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๋œ๋‹ค.
  3. ์ •์  C : ์ •์  C๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 29์ธ๋ฐ D๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ€๋Š” ๊ฑฐ๋ฆฌ๋Š” 14 + 10 = 24์ด๋ฏ€๋กœ ๊ธฐ์กด์— ์ €์žฅ๋œ ๊ฑฐ๋ฆฌ๋ณด๋‹ค ์งง๋‹ค. ๋”ฐ๋ผ์„œ C์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ 24๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

Phase 5

๋‹ค์Œ ์ •์ ์€ E์ด๋‹ค. E์™€ ์—ฐ๊ฒฐ๋œ ์ •์ ์€ F ํ•˜๋‚˜ ๋ฟ์ธ๋ฐ, F์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 21์ด๋‹ค. E๋ฅผ ํ†ตํ•ด F๋กœ ๊ฐ€๊ฒŒ๋˜๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ 15 + 20 = 35๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ์—๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๊ณ  ๋๋‚ธ๋‹ค.

Phase 6

๋‹ค์Œ์œผ๋กœ ๊ฒ€์‚ฌํ•  ์ •์ ์€ F์ด๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ F์™€๋Š” ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ •์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ณง๋ฐ”๋กœ ๋๋‚ธ๋‹ค.

Phase 7

ํ•œ๋ฒˆ ๋” ์ง„ํ–‰ํ•ด๋ณด์ž. ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์ •์ ํ•˜๋‚˜๋ฅผ ๋” ๋ฝ‘์•„์˜ค๋ฉด, C๊ฐ€ ๋‚˜์˜จ๋‹ค. C๋Š” F์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋งŒ C๋ฅผ ๊ฑฐ์ณ F๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 24 + 15 = 39 ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ F์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

Alogrithm Analysis

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ข…๋ฅ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ์†๋„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ Binary Heap ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ ์—ฐ์‚ฐ์€ O(lg V) ์˜ ์‹œ๊ฐ„์ด ์š”๊ตฌ๋˜๋ฏ€๋กœ ์ด ์—ฐ์‚ฐ์„ ๋ชจ๋“  relaxation์— ๋Œ€ํ•ด ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(E lg V) ๊ฐ€ ๋œ๋‹ค.