728x90
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/42626
<문제 풀이>
- 계산해야 할 값의 최솟값의 개수가 최대 1,000,000개 이므로 heapq 사용
- 주어진 문제대로 알고리즘 구성함
<코드>
import heapq
def solution(scoville, K):
answer = 0
mix = 0
heapq.heapify(scoville)
while True:
if len(scoville)<2:
if scoville[0] >= K:
break
else:
return -1
mix = heapq.heappop(scoville) + (heapq.heappop(scoville) * 2)
answer += 1
heapq.heappush(scoville,mix)
if scoville[0] >= K:
break
return answer
<고쳐야 할 점>
- 리스트를 heapq로 만드는 heapify(리스트) 기억하기
- 문제 꼼꼼히 읽기
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[기타] 백준 1459번 '걷기' (Python) (0) | 2021.12.17 |
---|---|
[기타] 백준 1254번 '팰린드롬 만들기' (Python) (0) | 2021.12.15 |
[연결리스트/트리구조] 프로그래머스 L3 '이중우선순위' (Python) (0) | 2021.12.15 |
[동적계획법] 난이도1.5, Google 인터뷰 '못생긴 수' (Python) (0) | 2021.12.15 |
[동적계획법] 난이도1.5, Flipkart 인터뷰 '금광' (Python) (0) | 2021.12.13 |