문제
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;
}
}
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] (JAVA) Lv1 같은 숫자는 싫어 (0) | 2023.07.02 |
---|---|
[프로그래머스] (JAVA) Lv1 폰켓몬 (0) | 2023.07.02 |
[프로그래머스] (JAVA) Lv2 카펫 (0) | 2023.07.02 |
[프로그래머스] (JAVA) Lv1 최소직사각형 (0) | 2023.07.01 |
[프로그래머스] (JAVA) Lv2 전화번호 목록 (0) | 2023.07.01 |