import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
List<Integer> resultList = Arrays.stream(scoville).boxed().collect(Collectors.toList());
while(resultList.size() > 1){
// 정렬 계산
Collections.sort(resultList);
if(resultList.get(0) > K) return answer;
int tmpVal = resultList.get(0) + (resultList.get(1) * 2);
resultList.remove(0);
resultList.set(0, tmpVal);
answer++;
}
// 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.
if(resultList.get(0) < K) answer = -1;
return answer;
}
}
이건 효율성 테스트 시간에서 떨어짐
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> que = new PriorityQueue<>();
for (int i = 0; i < scoville.length; i++) {
que.add(scoville[i]);
}
while(que.peek() < K) {
if (que.size() == 1)
return -1;
que.add(que.poll() + que.poll() * 2);
answer++;
}
return answer;
}
}
그래서 이게 분류가 우선순위큐쓰는거라서 그거 사용해서 했더니 해결...
이거 안쓰면 직접 다 정렬을 만들어야되는데 어려울듯?..