문제
링크: https://school.programmers.co.kr/learn/courses/30/lessons/42626
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
풀이
- 가장 안매운 메뉴, 두번째로 안매운 메뉴를 뽑아 계산해야됨 = heap 관련 문제
import heapq
def solution(scoville, K):
answer = 0
# 가장 안매운 메뉴가 K보다 크다면 0 리턴
if min(scoville) > K:
return 0
# scoville을 heap 구조로 변경
heapq.heapify(scoville)
smallest = heapq.heappop(scoville)
while smallest < K:
if not scoville:
return -1
answer += 1
next = heapq.heappop(scoville) * 2
heapq.heappush(scoville, smallest + next)
smallest = heapq.heappop(scoville)
return answer'알고리즘, 자료구조 > 프로그래머스' 카테고리의 다른 글
| [Python] 숫자 변환하기 (0) | 2026.01.09 |
|---|---|
| [Python] 뒤에 있는 큰 수 찾기 (0) | 2026.01.05 |
| [Python] 방문 길이 (0) | 2026.01.02 |
| [Javascript/Python] 프로그래머스 - N개의 최소공배수 (0) | 2023.05.05 |
| [Javascript] 프로그래머스 - 피로도 (0) | 2023.04.16 |