programmers - 더 맵게

-·2022년 10월 3일
0
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;
    }
}

그래서 이게 분류가 우선순위큐쓰는거라서 그거 사용해서 했더니 해결...

이거 안쓰면 직접 다 정렬을 만들어야되는데 어려울듯?..

profile
거북이는 오늘도 걷는다

0개의 댓글