Priority Queue

์ž๋ฃŒ๊ตฌ์กฐ

์ฒ˜๋ฆฌ์ˆœ์„œ

LIFO : ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ

FIFO : ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ

Priority Queue

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ

์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋“ค์–ด๊ฐ„ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ €๋‚˜์˜จ๋‹ค.

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ (ex) ์ถœ๋ฐœ์‹œ๊ฐ„, ๋Œ€๊ธฐ์‹œ๊ฐ„, ์†Œ์š”์‹œ๊ฐ„

  • ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด

  • ์šด์˜ ์ฒด์ œ์—์„œ์˜ ์ž‘์—… ์Šค์ผ€์ฅด๋ง

๋ฐ์ดํ„ฐ๋ฅผ ๊ทผ๊ฑฐ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํŒ๋‹จํ•ด์•ผํ•˜๋ฉฐ, ๋ชฉ์ ์— ๋งž๊ฒŒ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•ด์•ผํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋„ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์—ฐ์‚ฐ์€ ์‚ฝ์ž…(insert)๊ณผ ์‚ญ์ œ(delete)์ด๋‹ค.

์—ฐ์‚ฐ

์„ค๋ช…

create()

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ƒ์„ฑ

init(q)

์šฐ์„ ์ˆœ์œ„ ํ q ์ดˆ๊ธฐํ™”

is_empty(q)

์šฐ์„ ์ˆœ์œ„ ํ q๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

is_full(q)

์šฐ์„ ์ˆœ์œ„ ํ q๊ฐ€ ๊ฐ€๋“์ฐผ๋Š”์ง€ ๊ฒ€์‚ฌ

insert(q,x)

์šฐ์„ ์ˆœ์œ„ ํ q์— x์ถ”๊ฐ€

delete(q)

์šฐ์„  ์ˆœ์œ„ํ๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์š”์†Œ ์‚ญ์ œ, ๋ฐ˜ํ™˜

find(q)

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์š”์†Œ ๋ฐ˜ํ™˜

๊ตฌํ˜„๋ฐฉ๋ฒ•

์šฐ์„ ์ˆœ์œ„ ํ๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๋ฐฐ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„

  2. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„

  3. ํž™(Heap)์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

๋ฐฐ์—ด์ด๋‚˜ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด ํž™๋ณด๋‹ค๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋‹จ์ ์ด ์žˆ๋‹ค.

๋ฐฐ์—ด

  • ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๋Š” ์—ฐ์‚ฐ์„ ๊ณ„์†ํ•ด์•ผํ•œ๋‹ค. (๋‹น๊ธฐ๊ฑฐ๋‚˜ ๋ฐ€์–ด์•ผํ•˜๋Š”)

  • ์‚ฝ์ž… ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค.

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

  • ์‚ฝ์ž… ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ์œ„ํ•ด์„œ ๋ชจ๋“  ๋…ธ๋“œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ์—๋Š” ๋‹จ์ ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋น„๊ตํ•  ๋Œ€์ƒ์ด ๋งŽ์•„์ ธ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค.

  • ํž™์€ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. ํž™์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํž™(Heap) ๊ฒŒ์‹œ๋ฌผ์—์„œ ํ–ˆ๋‹ค.

ํ‘œํ˜„๋ฐฉ๋ฒ•

์‚ฝ์ž…

์‚ญ์ œ

์ˆœ์„œ์—†๋Š” ๋ฐฐ์—ด

O(1)

O(n)

์ˆœ์„œ์—†๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

O(1)

O(n)

์ •๋ ฌ๋œ ๋ฐฐ์—ด

O(n)

O(1)

์ •๋ ฌ๋œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

O(n)

O(1)

ํž™(Heap)

O(logn)

O(logn)

์ด๋Ÿฌํ•œ ์„ฑ๋Šฅ์ฐจ์ด๋กœ ์ฃผ๋กœ Heap์„ ์ด์šฉํ•ด์„œ ์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

Last updated