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으로 변환

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기