https://school.programmers.co.kr/learn/courses/30/parts/12117
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 정답 코드
작은 것부터 활용해야하기 때문에
우선순위큐를 활용했음
처음에 틀렸을 땐 2개씩 꺼내야하는데
!pq.isEmpty() 로 종료조건을 걸어서 틀림
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
PriorityQueue<Long> pq = new PriorityQueue<>((s1, s2) -> {
return Long.compare(s1, s2);
});
for(long s : scoville) {
pq.add(s);
}
int count = 0;
while(pq.size() >= 2){
long first = pq.poll();
if(first >= K) break;
long second = pq.poll();
long mix = first + second*2;
pq.add(mix);
count++;
}
return pq.poll() < K ? -1 : count;
}
}

'알고리즘 & 자료구조 > 문제 풀이' 카테고리의 다른 글
| [프로그래머스 알고리즘 고득점 Kit][이분탐색][Java] 징검다리 (0) | 2026.03.31 |
|---|---|
| [프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위 (0) | 2026.03.29 |
| [프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 네트워크 (0) | 2026.03.08 |
| [프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드 (0) | 2026.03.07 |
| [프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 최소직사각형 (0) | 2026.03.03 |