문제
programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같��
programmers.co.kr
코드
모든 원소가 K보다 커야 한다고 해서 for문으로 검사를 했었는데,
생각해보니 우선순위 큐라서 제일 앞의 원소만 K보다 큰지 확인해주면 됐었다.
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
//int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
for(int food : scoville){
pq.add(food);
}
int cnt=0;
int tmpK = pq.peek();
while(true){
boolean overK = true;
if(pq.peek() >= K)
return cnt;
else{
if(pq.size()==1)
return -1;
tmpK = pq.poll() + pq.poll()*2;
pq.add(tmpK);
cnt++;
}
}
}
}
'Preparing Coding Test > Programmers L2' 카테고리의 다른 글
[Java/프로그래머스/탐욕법(Greedy)] Level 2: 조이 스틱 (0) | 2020.11.09 |
---|---|
[Java/프로그래머스/DFS] 타겟 넘버 (0) | 2020.10.19 |
[Java/프로그래머스/브루트 포스] 소수 찾기 (Level 2) (0) | 2020.08.29 |
[Java/프로그래머스/브루트 포스] 카펫 (0) | 2020.08.28 |
[Java/프로그래머스] H-Index (0) | 2020.08.23 |