From e53bbb5abb385aea8a0676aafadd1b23d5067a18 Mon Sep 17 00:00:00 2001 From: SSUM <116950962+ssum21@users.noreply.github.com> Date: Wed, 26 Mar 2025 16:57:23 +0900 Subject: [PATCH] =?UTF-8?q?[level=202]=20Title:=20=EB=8D=94=20=EB=A7=B5?= =?UTF-8?q?=EA=B2=8C,=20Time:=201726.30=20ms,=20Memory:=2050.8=20MB=20-Bae?= =?UTF-8?q?kjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 프로그래머스/2/42626. 더 맵게/README.md | 72 ++++++++++++++++++++++++ 프로그래머스/2/42626. 더 맵게/더 맵게.py | 16 ++++++ 2 files changed, 88 insertions(+) create mode 100644 프로그래머스/2/42626. 더 맵게/README.md create mode 100644 프로그래머스/2/42626. 더 맵게/더 맵게.py diff --git a/프로그래머스/2/42626. 더 맵게/README.md b/프로그래머스/2/42626. 더 맵게/README.md new file mode 100644 index 0000000..c26b66d --- /dev/null +++ b/프로그래머스/2/42626. 더 맵게/README.md @@ -0,0 +1,72 @@ +# [level 2] 더 맵게 - 42626 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42626?language=python3) + +### 성능 요약 + +메모리: 50.8 MB, 시간: 1726.30 ms + +### 구분 + +코딩테스트 연습 > 힙(Heap) + +### 채점결과 + +정확성: 83.9
효율성: 16.1
합계: 100.0 / 100.0 + +### 제출 일자 + +2025년 03월 26일 16:57:20 + +### 문제 설명 + +

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.

+
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
+
+

Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.
+Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.

+ +
제한 사항
+ + + +
입출력 예
+ + + + + + + + + + + + + +
scovilleKreturn
[1, 2, 3, 9, 10, 12]72
+
입출력 예 설명
+ +
    +
  1. 스코빌 지수가 1인 음식과 2인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
    +새로운 음식의 스코빌 지수 = 1 + (2 * 2) = 5
    +가진 음식의 스코빌 지수 = [5, 3, 9, 10, 12]

  2. +
  3. 스코빌 지수가 3인 음식과 5인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
    +새로운 음식의 스코빌 지수 = 3 + (5 * 2) = 13
    +가진 음식의 스코빌 지수 = [13, 9, 10, 12]

  4. +
+ +

모든 음식의 스코빌 지수가 7 이상이 되었고 이때 섞은 횟수는 2회입니다.

+ +
+ +

※ 공지 - 2022년 12월 23일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
+※ 공지 - 2023년 03월 23일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.

+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git a/프로그래머스/2/42626. 더 맵게/더 맵게.py b/프로그래머스/2/42626. 더 맵게/더 맵게.py new file mode 100644 index 0000000..7818b90 --- /dev/null +++ b/프로그래머스/2/42626. 더 맵게/더 맵게.py @@ -0,0 +1,16 @@ +import heapq + +def solution(scoville, K): + heapq.heapify(scoville) + answer = 0 + + while True: + item_1 = heapq.heappop(scoville) + if item_1 >= K: + break + if len(scoville) <= 0: + return -1 + item_2 = heapq.heappop(scoville) + heapq.heappush(scoville, item_1 + item_2*2) + answer += 1 + return answer \ No newline at end of file