Programmers : ๋ ๋งต๊ฒ
๐ Programmers : ๋ ๋งต๊ฒ
ํ์ ์ฌ์ฉํ ์ค ์๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
๋ ๊ฐ์ ์์์ ์์ด ์ค์ฝ๋น ์ง์๋ฅผ ๋์ด๋ ์์ ๋ง๋ค ๋ชฉ๋ก์์ ์ค์ฝ๋น ์ง์๊ฐ ์ ์ผ ์์ ์์ ๋ ๊ฐ๋ฅผ ๋นผ๋ด์ ์กฐํฉํ๋ฉด ๋๋ฏ๋ก
์ต์ํ์ ์ด์ฉํ์ฌ ํ์๋ค.
๐ ์ฝ๋
import heapq
def solution(scoville, K):
answer = 0
heap = []
for i in scoville:
heapq.heappush(heap, i)
for _ in range(len(heap)):
a = heapq.heappop(heap)
if a >= K:
return answer
if not heap:
return -1
b = heapq.heappop(heap)
c = a + b * 2
heapq.heappush(heap, c)
answer += 1
์ต์ ํ์ ์ด์ฉํ๋ฏ๋ก heappop์ ํ ๊ฐ์ ์ ์ผ ์์ ๊ฐ์ด๋ฏ๋ก ์ด ๊ฐ์ด K๋ณด๋ค ํฌ๋ค๋ฉด ํ์ฌ๊น์ง ์์ ํ๋ ํ์๋ฅผ ๋ฐํํ๋ค.
heap์ด ๋น์ด์๋ค๋ฉด ๋์ด์ ์ค์ฝ๋น ์ง์๋ฅผ ์ฌ๋ฆด ์ ์๋ ์๋จ์ด ์์ผ๋ฏ๋ก -1์ ๋ฐํํ๋ค.
๊ทธ๊ฒ ์๋๋ผ๋ฉด heappopํ์ฌ 2๋ฒ์งธ๋ก ์์ ์ค์ฝ๋น ์ง์์ ์์์ ์๋๋ค. ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ชฉ๋ก์ ์ถ๊ฐํ๋ค.
๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๊ฐ K๋ฅผ ๋๊ฒ ํ๋ ์์ ์ ์ต์ ํ์๋ฅผ ๋ฐํํด์ผ ํ๋ฏ๋ก ์๋ ์์ ์ ํ ๋๋ง๋ค ํ์๋ฅผ ์นด์ดํธํ๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ