๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์šฐ์„ ์ˆœ์œ„ํ (2)

Hey Tech

๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฑ์ค€#1202 #๊ณจ๋“œ | "๋ณด์„ ๋„๋‘‘" | ํŒŒ์ด์ฌ ํ’€์ด

๋ฌธ์ œ ์›๋ณธ ๋งํฌ: https://www.acmicpc.net/problem/1202 1202๋ฒˆ: ๋ณด์„ ๋„๋‘‘ ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N, K ≤ 300,000) ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๊ฐ ๋ณด์„์˜ ์ •๋ณด Mi์™€ Vi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (0 ≤ Mi, Vi ≤ 1,000,000) ๋‹ค์Œ K๊ฐœ ์ค„์—๋Š” ๊ฐ€๋ฐฉ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ฌด๊ฒŒ Ci๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ci www.acmicpc.net ์ ‘๊ทผ๋ฒ• ๋ณธ ๋ฌธ์ œ์˜ ๋ชฉํ‘œ๋Š” ๊ฐ€๊ฒฉ์ด ๋†’์€ ๋ณด์„์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ๋‹ด๋˜ ์šฉ๋Ÿ‰์ด ์ ์€ ๊ฐ€๋ฐฉ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ€๋ฐฉ์˜ ์šฉ๋Ÿ‰์— ๋”ฐ๋ฅธ ํƒ์ƒ‰ ์ˆœ์„œ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ํ’€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด (๋ฌด๊ฒŒ, ๊ฐ€์น˜) ์ •๋ณด๊ฐ€ ๋‹ด๊ธด 3๊ฐœ์˜ ๋ณด์„๊ณผ ๊ฐ€๋ฐฉ 2๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€๋ฐฉ์˜ ์šฉ๋Ÿ‰..

[์ž๋ฃŒ๊ตฌ์กฐ] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? 2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ 2.1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? 2.2. ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ๋ฐฉ์‹: ๋ฆฌ์ŠคํŠธ vs ํž™ 3. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„(Python) 3.1. heapq ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ๊ฐœ 3.1.1. ํž™ ์›์†Œ ์ถ”๊ฐ€(heappush) 3.1.2. ํž™ ์›์†Œ ์‚ญ์ œ(heappop) 3.1.3. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 3.2. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ์˜ˆ์‹œ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ(Queue) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์œผ๋กœ์„œ ๊ฐ€์žฅ ๋จผ์ € ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํŠน์ง•์ด ์œ ์‚ฌํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์˜ ..