Priority Queue ๋?
์ผ๋จ ์ด์ ์ ๋ฐฐ์ ๋ 'ํQueue'๋ ์คํ๊ณผ ๋ฐ๋๋ก '๋จผ์ ๋ค์ด์จ๊ฒ์ด ๋จผ์ ๋๊ฐ๋' FIFO ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ๋ค.
ํน์ง์ผ๋ก๋ ์คํ๊ณผ ๋ฌ๋ฆฌ ๋ค์ด๊ฐ๋ ๋ฐฉํฅ๊ณผ ๋์ค๋ ๋ฐฉํฅ์ด ๋ฌ๋ผ์ ์กฐ๊ธ์ ๊ตฌํํ๊ธฐ ๊น๋ค๋ก์ ๋ค๋ ์ .
์ฐ์ ์์ํ์์๋ ๋ค์ด์จ ์์๋ ์๊ด ์์ด ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํด ๊ทธ ์ฐ์ ์์๋๋ก ๋๊ฐ๋ ํ๋ค.
์ ์ฉ ์ฌ๋ก๋ค :
- ๋ฐ์ดํฐ ์์ถ : ํํ๋ง ์๊ณ ๋ฆฌ์ฆ
- ์ต๋จ ๊ฑฐ๋ฆฌ : ๋ค์ดํฌ์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
- ์ต์ ์ ์ฅ ํธ๋ฆฌ : ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ
๊ตฌํ ๋ฐฉ๋ฒ
๊ธฐ๋ณธ์ ์ธ ๊ตฌํ
์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด๋ก ๊ตฌํ
์ ๋ ฌ๋์ง ์์ (๋งํฌ๋)๋ฆฌ์คํธ๋ก ๊ตฌํ
์ ๋ ฌ๋ ๋ฐฐ์ด๋ก ๊ตฌํ
์ ๋ ฌ๋ (๋งํฌ๋)๋ฆฌ์คํธ๋ก ๊ตฌํ
์ ๋ ฌ๋์ง ์์๊ฒ๊ณผ ์ ๋ ฌ๋๊ฒ์ ์ฐจ์ด๋ ์๋ฃ๋ฅผ ์ฝ์
ํ ๋ ๋ง์ ์ผ์ ํ ๊ฒ์ด๋, ๊บผ๋ผ ๋ ๋ง์ ์ผ์ ํ ๊ฒ์ด๋์ ์ฐจ์ด๋ค.
์ ๋ ฌ๋์ง ์๊ณ ๊ตฌํํ๋ ค๋ฉด ์ฝ์
์ ๊ทธ๋ฅ ๋งจ ๋ง์ง๋ง index์ ์ถ๊ฐํ๊ณ , ๊บผ๋ผ ๋ (์ฐ์ ์์ ๊ธฐ์ค์ด '๊ฐ์ฅ ์์ ๊ฐ'์ด๋ผ๋ฉด) ๊ทธ๋๋ง๋ค ๊ฐ์ฅ ์์ ๋
ธ๋๋ฅผ ์ฐพ๊ณ ๊ทธ ๋
ธ๋๋ฅผ ๊ฐ์ ธ์ค๋๊ฒ. (์ฝ์
์์ , ๊บผ๋ผ์์ ์ ๋ณต์ก๋)
์ ๋ ฌ์์ผ ๊ตฌํํ๋ ค๋ฉด ์ฝ์
์ ํ ๋๋ง๋ค ์์ ๋ณด๋ค ํฐ ๊ฒ์ index๋ฅผ ์ฐพ์ ๊ทธ ์๋ฆฌ์ ๋ฃ๊ณ ๋๋จธ์ง ๋ค์ ๋
ธ๋๋ค์ ํ i์นธ์ฉ ์ด๋์ํค๊ณ , ๊บผ๋ผ๋๋ ์ฆ์ ๋ฐ๋ก ๋งจ ์์ ๋
ธ๋๋ฅผ ๊บผ๋ด๋ฉด ๋๋ค. (๋ฐ๋๋ก ์ฝ์
์์ , ๊บผ๋ผ์์ ์ ๋ณต์ก๋)
์ด์ง ํธ๋ฆฌ ๊ตฌํ
์ด์ง ๊ฒ์ ํธ๋ฆฌ ๊ตฌํ :
์ฝ์
๊ณผ ์ญ์ ๋ชจ๋ ํ๊ท ์ ๋ณต์ก๋.
์ต์
์ ๊ฒฝ์ฐ(๊ทน๋จ์ ์ผ๋ก ๊ฒฝ์ฌ์ ธ์ ๋ฆฌ์คํธ์ ๊ฑฐ์ ๋ค๋ฅผ๋ฐ ์๋ ํธ๋ฆฌ) .
๊ท ํ ์ด์ง ๊ฒ์ ํธ๋ฆฌ ๊ตฌํ :
์ฝ์
๊ณผ ์ญ์ ๋ชจ๋ ์ต์
์ ๊ฒฝ์ฐ
์์์ ๋ณธ ๋ฐฐ์ด,๋ฆฌ์คํธ ๊ตฌํ์์ ์ ๋ ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ๊ฐ๊ฐ ํ์ ํ ๋ค๋ฅธ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๊ทธ๋์ ์ฉ๋๋ณ๋ก ์ฝ์
์ด ๋ง์ผ๋ฉด ๋น์ ๋ ฌ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ณ , ์ญ์ ๊ฐ ๋ง์ผ๋ฉด ์ ๋ ฌ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ฉด ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฝ์
๊ณผ ์ญ์ ๋ชจ๋ ์ผ์ ํ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธธ ์ํ๋ค๋ฉด ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ก ๊ตฌํํ๋ฉด ๋๋ค.
์ด์ง ํ ๊ตฌํ
'ํHeap'์ด๋ผ๋ ์์ง ๋ฐฐ์ด์ ์๋ ์๋ฃ ๊ตฌ์กฐ๋ก๋ ๊ตฌํํ ์ ์๋ค.
๋ฐ๋ก ๋ค์ ์์
์์ ๋ค๋ฃฌ๋ค๊ณ .