[힙] 더 맵게 (Level 2)

정은경·2020년 4월 4일
0

1. 문제


2. 나의 풀이

2-1) 효율성을 통과하지 못한 나의 코드

def solution(scoville, K):
    count = 0
    target = 0
    scoville.sort()
    # print(scoville)
    count = 0
    while len(scoville) >= 2 and min(scoville) <= K:
        count += 1
        scoville.append(scoville.pop(0)+scoville.pop(0)*2)
        scoville.sort()
    
    if min(scoville) < K:
        return -1
    else:
        return count

2-2) heapq라는 자료구조를 이용해서 탈출!

import heapq

def solution(scoville, K):
    count = 0
    target = 0

    heap = []
    for i in scoville:
        heapq.heappush(heap,i)
    count = 0
    while len(heap) >= 2 and heap[0] <= K:
        count += 1
        heapq.heappush(heap, (heapq.heappop(heap) + heapq.heappop(heap) * 2))

    if heapq.heappop(heap) < K:
        return -1
    else:
        return count

3. 남의 풀이


Reference

4. 느낀 점

  • heap을 이용해서 풀어야하는 문제!
profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글