ํž™

    [PGM_42626] ๋” ๋งต๊ฒŒ (Java)

    [PGM_42626] ๋” ๋งต๊ฒŒ (Java)

    ๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42626# ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋” ๋งต๊ฒŒ ๋งค์šด ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” Leo๋Š” ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Leo๋Š” ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‘ ๊ฐœ์˜ ์Œ์‹์„ ์•„๋ž˜์™€ ๊ฐ™ programmers.co.kr ๋ฌธ์ œํ’€์ด ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ํ•ต์‹ฌ ์Šคํ‚ฌ ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป Heap ์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์ดˆ๊ธฐ ์ •๋ ฌ ํ›„ ์‚ฝ์ž…์ •๋ ฌ๋กœ ๊ฐ’์„ ๊ณ„์† ๋„ฃ์–ด์ฃผ์—ˆ๋Š”๋ฐ ํšจ์œจ์„ฑ์—์„œ 0์ ์„ ๋ฐ›์•˜๋‹ค. ๊ณฐ๊ณฐํžˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ Heap์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด Heap์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์—ˆ๋‹ค. ๋” ๋งต๊ฒŒ ๋ฌธ์ œ๋Š” ๋งค์šด๋ง›์— ๋Œ€ํ•œ ๋ฐฐ์—ด๊ณผ ๋งค์šด ๊ฐ•๋„ K๊ฐ’์ด input์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. ..

    ์ž๋ฐ”์—์„œ Heap ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

    ์ž๋ฐ”์—์„œ Heap ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

    Java์—์„œ Heap ์‚ฌ์šฉํ•˜๊ธฐ Java์—์„œ๋Š” Collection์œผ๋กœ Heap์ด ์—†๋‹ค. ํ•˜์ง€๋งŒ Max-Heap๊ณผ Min-Heap์„ Primary Queue๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Primary Queue๋ฅผ ํ™œ์šฉํ•ด Heap์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. Heap์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ’๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํŠธ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค๊ณ  ํ•  ๋•Œ, ๋ฃจํŠธ์— ์œ„์น˜ํ•˜๋Š” ๊ฐ’์ด ์ตœ๋Œ€ ํ˜น์€ ์ตœ์†Œ๊ฐ’์ด ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ตœ์†Œ ํž™ ์‚ฌ์šฉํ•˜๊ธฐ ์ตœ์†Œํž™์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ Primary Queue๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค. PriorityQueue minHeap = new PriorityQueue(); ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด remove๋˜๋Š” peek์˜ ๊ฐ’์ด minHeap์˜ ์ตœ์†Œ๊ฐ’์ด ๋œ๋‹ค. Prim..