프로그래머스 더 맵게

최준근·2021년 10월 18일
0

문제설명

생각하기

  1. 스코빌의 최소값이 k보다 작으면 맵지않은 스코빌 지수 두개를 빼서 더하고 리스트에 추가
  2. 만약 스코빌의 길이가 1이고(끝까지 스코빌지수를 더했을때) 스코빌의 최소값이 k보다 작다면 -1을 리턴
  3. 스코빌의 값이 k보다 작지 않다면 cnt값을 리턴

내 풀이


첫번째 시도는 52.4점으로 실패다.
몇개의 테스ㅡ에서 런타임에러가 뜬다.
예외처리에서 문제가 있는 것 같다.

두번째 시도 역시 실패.. 71.4점이다

정확성은 좋지만 효율성이 0점이다
뭐가 문제인지 모르겠다.. 하


세번째 시도 heapq를 사용하여 풀었다.
모듈을 사용하지 않고 풀려고 했지만 이 문제는 heapq를 사용해야 풀 수 있는 문제 같다.
heapq.heapqify(리스트) , heapq.heappop(힙), heapq.heappush(힙, 값)
세가지를 적절히 사용하여 문제를 풀 수 있다.
heapq는 최소값으로 정렬이 되어있기 때문에 힙의 0번쨰는 항상 최소값이 존재한다.
heapq.heapqify(리스트) --> 이미 형성된 리스트를 힙으로 만들어준다.

profile
느려도 좋으니 꾸준하게

0개의 댓글