[TIL] 23.02.24 프로그래머스 더맵게

hyewon jeong·2023년 2월 24일
0

TIL

목록 보기
99/138

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42626

2. 소스 코드

  • PriorityQueue 오름차순 적용되는 heap 특징을 이용하여 풀었다.
import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
      int answer = 0;

      PriorityQueue<Integer> queue = new PriorityQueue<>();
      for (int i = 0; i < scoville.length; i++) {
        queue.add(scoville[i]);//큐에 저장
      }
      while (queue.peek() < K) {
        if (queue.size() == 1) {
          return -1;
        }
        int n = queue.poll();
        int m = queue.poll();

        int result = n + (m * 2);
        queue.add(result);
        answer++;

      }

      System.out.println(answer);
      return answer;

    }
  }

3. Priority Queue 정리

poll 과 remove() 차이

// 첫번째 값을 반환하고 제거, 비어있다면 null
priorityQueueLowest.poll();

// 첫번째 값 제거 비어있다면 예외 발생
priorityQueueLowest.remove();

profile
개발자꿈나무

0개의 댓글