알고리즘 문제 풀이/프로그래머스
[프로그래머스] (JAVA) Lv2 더 맵게
노루스름한맛
2023. 7. 2. 18:05
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42626
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
설명
입출력
나의 풀이
풀이 과정
우선순위 큐를 사용해서 오름차순으로 정렬된 큐를 구현한 후
while문을 돌며 2개씩 poll을 하고 문제에 나온 식대로 섞어주었다.
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
int x = -1;
int y = -1;
int new_sco = -1;
PriorityQueue<Integer> q = new PriorityQueue<>();
for(Integer sco: scoville) {
q.offer(sco);
}
while ( q.peek() < K ) {
x = q.poll();
y = q.poll();
new_sco = x + ( y * 2 );
q.offer(new_sco);
answer++;
if ( q.size() == 1 && q.peek() < K ) {
answer = -1;
break;
}
}
return answer;
}
}