728x90
반응형
1. 문제
programmers.co.kr/learn/courses/30/lessons/42626?language=java
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
2. 풀이
- 맨처음 List를 써서 풀었더니 시간초과가 나와 PriorityQueue를 사용하여 풀었다.
3. 코드
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
//리스트만 쓰면 효율성 테스트에서 시간초과 나옴
//PriorityQueue 쓰기로 함
int answer = 0;
PriorityQueue<Integer>pq = new PriorityQueue<>();
for(int i =0; i<scoville.length; i++){
pq.offer(scoville[i]);
}
while (!pq.isEmpty()){
if(pq.size()<2 || pq.peek()>=K){
break;
}
int a = pq.poll();
int b = pq.poll();
int num = a+(b*2);
pq.offer(num);
answer++;
}
return pq.peek()>=K?answer:-1;
}
}
반응형
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 Lv2] 카카오프렌즈 컬러링북(Java) (0) | 2024.03.04 |
|---|---|
| [프로그래머스 Lv2] 문자열 압축(Java) (0) | 2024.03.04 |
| [프로그래머스 Lv2] 괄호 변환(Java) (0) | 2021.01.07 |
| [프로그래머스 Lv2] 가장 큰 수(Java) (0) | 2021.01.07 |
| [프로그래머스 Lv2] 주식가격(Java) (0) | 2021.01.06 |