Greedy Algorithm & Priority Queue for Max Attendable Events
๐ค AI ์ถ์ฒ
์ด ์ฝํ ์ธ ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ ํฅ์์ ๋ชฉํ๋ก ํ๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์ ์ตํฉ๋๋ค. ํนํ, ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ค๋นํ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ๋ฅผ ํ์ฅํ๊ณ ์ถ์ ๋ฏธ๋ค๊ธ ๊ฐ๋ฐ์์๊ฒ ์ถ์ฒํฉ๋๋ค. ์ฐ์ ์์ ํ(ํ)์ ํ์์ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์ดํด๋ฅผ ๋์ด๊ณ ์ถ์ ๊ฐ๋ฐ์๋ผ๋ฉด ๊ผญ ์ฐธ๊ณ ํด์ผ ํ ์๋ฃ์ ๋๋ค.
๐ ์ฃผ์ ํค์๋

ํต์ฌ ๊ธฐ์
์ด ์ฝํ ์ธ ๋ ์ต๋ ์ฐธ์ ๊ฐ๋ฅํ ์ด๋ฒคํธ ์๋ฅผ ์ฐพ๋ ๊ณ ์ ์ ์ธ ํ์์ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm) ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ๋ค๋ฃน๋๋ค. ํต์ฌ์ ์ด๋ฒคํธ์ ์ข ๋ฃ์ผ์ ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์ ํ(Min-Heap)๋ฅผ ํ์ฉํ์ฌ ์๊ฐ ์ ์ฝ ๋ด์์ ์ต์ ์ ์ด๋ฒคํธ ์ ํ์ ํจ์จ์ ์ผ๋ก ์ํํ๋ ๊ฒ์ ๋๋ค.
๊ธฐ์ ์ ์ธ๋ถ์ฌํญ
- ๋ฌธ์ ์ ์: ๊ฐ ์ด๋ฒคํธ๋ ์์์ผ๊ณผ ์ข ๋ฃ์ผ์ ๊ฐ์ง๋ฉฐ, ํ๋ฃจ์ ํ๋์ ์ด๋ฒคํธ๋ง ์ฐธ์ํ ์ ์์ต๋๋ค. ์ฃผ์ด์ง ์ด๋ฒคํธ ๋ชฉ๋ก์์ ์ต๋ ์ฐธ์ ๊ฐ๋ฅํ ์ด๋ฒคํธ ์๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ํ์์ ์ ๊ทผ ๋ฐฉ์: ๋งค์ผ ๊ฐ๋ฅํ ์ด๋ฒคํธ ์ค์์ ๊ฐ์ฅ ์ผ์ฐ ์ข ๋ฃ๋๋ ์ด๋ฒคํธ๋ฅผ ์ ํํฉ๋๋ค. ์ด ์ ๋ต์ ๋ฏธ๋์ ๋ ๋ง์ ์ด๋ฒคํธ๋ฅผ ์ฐธ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ๋จ๊ฒจ๋๊ธฐ ์ํจ์ ๋๋ค.
- ์ฐ์ ์์ ํ (Min-Heap): ํ์ฌ ๋ ์ง์ ์ฐธ์ ๊ฐ๋ฅํ ์ด๋ฒคํธ๋ค์ ์ข ๋ฃ์ผ ๊ธฐ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ํญ์ ๊ฐ์ฅ ๋นจ๋ฆฌ ๋๋๋ ์ด๋ฒคํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
- ๊ตฌํ ๋จ๊ณ:
- ์ด๋ฒคํธ ๋ชฉ๋ก์ ์์์ผ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
- ๋ ์ง๋ณ๋ก ์ํํ๋ฉด์ ํด๋น ๋ ์ง์ ์์ํ๋ ์ด๋ฒคํธ๋ฅผ Min-Heap์ ์ถ๊ฐํฉ๋๋ค. ์ด๋, ์ข ๋ฃ์ผ์ ๊ธฐ์ค์ผ๋ก ํ์ ๊ตฌ์ฑํฉ๋๋ค.
- ๊ฐ ๋ ์ง๋ง๋ค ํ์์ ์ด๋ฏธ ์ข ๋ฃ๋ ์ด๋ฒคํธ(ํ์ฌ ๋ ์ง๋ณด๋ค ์ผ์ฐ ๋๋๋ ์ด๋ฒคํธ)๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- ํ์ด ๋น์ด์์ง ์๋ค๋ฉด, ๊ฐ์ฅ ๋นจ๋ฆฌ ๋๋๋ ์ด๋ฒคํธ๋ฅผ ์ฐธ์ํ๊ณ ๊ฒฐ๊ณผ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
- ์์ ์ฝ๋: C++, Python, JavaScript(var) ์ธ ๊ฐ์ง ์ธ์ด๋ก ๊ตฌํ ์์๊ฐ ์ ๊ณต๋์ด ๋ค์ํ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ ๊ทผ์ฑ์ ๋์ ๋๋ค.
๊ฐ๋ฐ ์ํฉํธ
- ํจ์จ์ ์ธ ์ค์ผ์ค๋ง: ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ๋ฅผ ํตํด ๋ณต์กํ ์ค์ผ์ค๋ง ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
- ์๋ฃ๊ตฌ์กฐ ํ์ฉ: ์ฐ์ ์์ ํ(ํ)์ ์ค์ ์ ์ฉ ์ฌ๋ก๋ฅผ ํตํด ์๋ฃ๊ตฌ์กฐ์ ์ค์์ฑ๊ณผ ํ์ฉ๋ฒ์ ๊น์ด ์ดํดํ ์ ์์ต๋๋ค.
- ์ฝ๋ฉ ํ ์คํธ ์ค๋น: ์ด ๋ฌธ์ ๋ ์ฝ๋ฉ ์ธํฐ๋ทฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ฒฝ์ง๋ํ์์ ์์ฃผ ์ถ์ ๋๋ ์ ํ์ผ๋ก, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ปค๋ฎค๋ํฐ ๋ฐ์
์ด ๋ฌธ์ ๋ ์๊ณ ๋ฆฌ์ฆ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ๋ ผ์๋๋ ์ฃผ์ ์ด๋ฉฐ, ํ์์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ์ ํ์ฉํ ํจ์จ์ ์ธ ํด๊ฒฐ์ฑ ์ด ๋๋ฆฌ ์ธ์ ๋ฐ๊ณ ์์ต๋๋ค. ํนํ ์๊ฐ ๋ณต์ก๋ ๋ฐ ๊ณต๊ฐ ๋ณต์ก๋์ ๋ํ ์ต์ ํ ๋ ผ์๊ฐ ํ๋ฐํฉ๋๋ค.
ํค์ค๋งค๋
์ฝํ ์ธ ๋ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํ๋ฉฐ, ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ๋ฐฉ์๊ณผ ์ค์ ์ฝ๋ฉ ๊ตฌํ์ ์ง์คํ๋ ์ ๋ฌธ์ ์ด๊ณ ์ค์ฉ์ ์ธ ํค์ ์ ์งํฉ๋๋ค. ์น๊ทผํ ๋น์ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๊ฐ๋ ์ ์ฝ๊ฒ ์ดํดํ๋๋ก ๋์ต๋๋ค.