[프로그래머스] 더 맵게 (java, heap)
728x90
반응형
프로그래머스에서 java를 쓰니 매우 어색하다
네이버 코테 대비로 연습 중 ㅠ javascript 쓸 것 같지만 문자열 처리 나오면 javascript로 해야지
-- 풀이
우선순위 큐에 모든 음식을 넣는다.
음식을 모두 섞는데 만약 가장 작은 수가 K 이상이면 조건을 만족하므로 break
아니면 섞는다. 만약 음식이 1개가 남으면 섞지 못하므로 break해주고 마지막 1개 음식이 K를 넘는지 확인한다.
아니면 최종까지 불가능한 것이므로 -1을 리턴해준다.
import java.util.*;
class Solution {
public int solution(int[] s, int K) {
int answer = 0;
PriorityQueue<Integer> pq=new PriorityQueue<>();
for(int i=0;i<s.length;i++){
pq.add(s[i]);
}
//모든 음식은 2개 이상 있다.
while(pq.size()>=2){
int a=pq.poll();
if(a>=K){
//최소값이 K를 넘음
return answer;
}
int b=pq.poll();
int sum=a+b*2;
pq.add(sum);
answer+=1;//섞은 횟수
}
if(pq.poll()>K)return answer; //마지막에 섞은 것이 성공
return -1;
}
}
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 방문 길이 (javascript) (0) | 2021.04.24 |
---|---|
[프로그래머스] 가장 먼 노드 (javascript, bfs) (0) | 2021.04.20 |
[프로그래머스] 파일명 정렬 (javascript) (0) | 2021.04.13 |
[프로그래머스] 여행경로 (javascript, dfs) (0) | 2021.03.20 |
[프로그래머스] 단속 카메라 (javascript) (0) | 2021.03.19 |
TAGS.