[Programmers / Level 2] 42626. 더 맵게 (Java)

이하얀·2025년 1월 12일
0

🕊️ 프로그래머스

목록 보기
91/97

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 음식 스코빌 지수 배열과 스코빌 지수 변수가 주어졌을 때, 스코빌 지수를 K 이상으로 만들기 위해 섞는 최소 횟수를 구하는 문제


알고리즘


풀이 시간 : 분

  • 최소 힙 생성 : 모든 음식의 스코빌 지수를 작은 순서대로 관리
  • 반복 섞기
    • 가장 작은 두 값을 꺼내 새 스코빌 계산(첫번째 + 두번째*2)
    • 새로운 값 -> 힙에 추가, 횟수 증가
  • 가장 작은 값이 K 이상이면 종료, 불가능한 경우 -1을 반환
import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        for (int s : scoville) {
            pq.add(s);
        }

        while (pq.size() > 1 && pq.peek() < K) {
            int first = pq.poll();
            int second = pq.poll();
            int newScoville = first + (second * 2);
            pq.add(newScoville);
            answer++;
        }
        
        if (pq.peek() < K) {
            return -1;
        }

        return answer;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글

관련 채용 정보