안녕하세요! Do My Best 블로그입니다. ㅎㅎ
이번에 포스팅할 내용은 힙(Heap)과 관련된 프로그래머스 문제 LEVEL2에 해당되는 더맵게 알고리즘 문제를 풀어보도록 하겠습니다.
해당 문제는 프로그래머스 웹페이지에서 만나보실 수 있습니다.
문제
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다.
모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
제한 사항
- scoville의 길이는 1 이상 1,000,000 이하입니다.
- K는 0 이상 1,000,000,000 이하입니다.
- scoville의 원소는 각각 0 이상 1,000,000 이하입니다.
- 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.
풀이
해당 문제는 heapq 모듈을 import하여 해결하였습니다.
heapq를 사용하지 않고 일반 배열에서 queue나 stack방식을 사용한다면 시간초과가 발생하네요.. ㅠㅠ
heapq에대한 설명은 heapq를 사용해보자 [Python] 에서 볼 수 있습니다.
또한 heapq를 사용하여 다른 알고리즘 문제를 해결한 것은 이중우선순위큐 알고리즘 [Python]에서 볼 수 있습니다.
지금까지 더맵게 프로그래머스 heap [파이썬]이라는 주제로 포스팅하였습니다!
해당 게시물에 문제가 있다면 댓글을 통해 피드백해주시면 감사하겠습니다~ 같이 공부해요~^^
방문해주신분들 댓글 한개씩 달아주시면 감사하겠습니다~~^^