코딩테스트

프로그래머스 더 맵게 파이썬

yolang 2024. 7. 30. 14:26
728x90

 

🔗 더 맵게 

 

📌오늘의 학습 키워드

  • 힙이다 오늘은! 힙을 사용해야 효율성 테스트 통과 가능하다~

✨공부한 내용 본인의 언어로 정리하기

  • 힙은 우선순위큐이다. 힙을 사용하면 최소인 요소를 뽑을 때 좋은 효율로 실행 가능하다.

📚오늘의 회고

  • 어떤 문제가 있었고, 나는 어떤 시도를 했는지
    • 사실 저번에 풀었던 문제다! 근데 또 오랜만이라 그런지 바로 힙이 생각이 안나고 리스트로 풀고자했다. 😭
  • 어떻게 해결했는지
    • 정확도는 통과하지만 효율성에서 탈락! 힙으로 고치고 조건을 추가해 더 실행속도가 빠르도록 했더니 통과했다.
  • 무엇을 새롭게 알았는지
    • while 문을 사용할 때 종료할 수 있으면 최대한 빨리 하자. while 조건에 넣지 말고 실행중에 break 할 수 있으면 그렇게 하기
  • 내일 학습할 것은 무엇인지
    • 재귀... 

[🤓문제 해결 코드]

import heapq


def solution(scoville, K):
    count = 0
    heapq.heapify(scoville)
    while len(scoville) > 1:
        min_1 = heapq.heappop(scoville)
        if min_1 >= K:
            return count
        mixed = min_1 + (heapq.heappop(scoville) * 2)
        heapq.heappush(scoville, mixed)
        count += 1
    if heapq.heappop(scoville) >= K:
        return count
    return -1
728x90