728x90
https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while True:
if scoville[0] >= K:
break
elif len(scoville) == 1:
answer = -1
break
scoville.append(heapq.heappop(scoville)+heapq.heappop(scoville)*2)
answer += 1
return answer
시간초과나서 heapq 모듈 사용해서 풀었더니 성공
# heapq 함수
- heapq.heappush(heap, item) : item을 heap에 추가
- heapq.heappop(heap) : heap에서 가장 작은 원소를 pop & 리턴. 비어 있는 경우 IndexError가 호출됨
- heapq.heapify(x) : 리스트 x를 즉각적으로 heap으로 변환
반응형
'전.py' 카테고리의 다른 글
[python] 프로그래머스 짝지어 제거하기 (Lv.2) (0) | 2022.01.16 |
---|---|
[python] 프로그래머스 소수 만들기 (Lv.1) (0) | 2022.01.16 |
[python] 프로그래머스 음양 더하기 (Lv.1) (0) | 2022.01.16 |
[python] 백준 4153 직각삼각형 (0) | 2022.01.13 |
[python] 백준 1059 좋은 구간 (0) | 2022.01.13 |