뮁이의 개발새발

[JAVA] 프로그래머스 더 맵게 (우선순위 큐) 본문

카테고리 없음

[JAVA] 프로그래머스 더 맵게 (우선순위 큐)

뮁뮁이 2021. 9. 15. 00:49

우선순위큐를 자주 안써봐서 당황했던 문제.. list로 구현하면 효율성에서 0점이 나온다...!!!

우선순위큐는 안에 들어가면서 정렬되는것이 아니라 나올때 우선순위가 높은 애들이 poll됨

import java.util.PriorityQueue;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        PriorityQueue<Integer> queue = new PriorityQueue<Integer>();

		for (int i = 0; i < scoville.length; i++) {
			queue.add(scoville[i]);
		}

		while (true) {
			if (queue.size() < 2) {
				System.out.println(-1);
				return -1;
			}
			int newscb = queue.poll() + queue.poll() * 2; // 작은거 두개 뽑음
//			System.out.println(newscb);
			queue.offer(newscb); // 큐에 추가
			answer++; // 횟수 1회 추가

			if (queue.peek() >= K) { //가장 낮은 값이 K보다 크면 전부 K보다 큰 것..
				System.out.println(answer);
				return answer;
			}
		}
        
    }
}
Comments