99클럽 코테 스터디 22일차 TIL - leetCode2558 - Take Gifts From the Richest Pile

Gaeng·2024년 11월 18일
post-thumbnail

문제 링크 : 2558 - Take Gifts From the Richest Pile

기술 : 우선순위큐, PriorityQueue를 활용하여 문제를 풀면 됨.

사용한 것

  • PriorityQueue(Collections.reverseOrders()); 사용해서 문제를 풀면 됨. 난이도는 쉬운 편.
  • 제곱근에 대한 값을 꺼내기 위해서는 Math.sqrt 를 사용해서 풀어야함. (int)로 바꾼 이유는 더블로 값이 나오기에 형변환이 필요함.
  • k 값만큼 반복하면서 값을 구하고
  • 마지막에 그 값을 더하면 끝. -> long sum으로 해야 정답임. 값의 범위를 정확하게 위해서는 long이 필수.

문제가 영어라서 당황한 거 빼고는 괜찮았음.

	class Solution {
    public long pickGifts(int[] gifts, int k) {
          PriorityQueue queue = new PriorityQueue(Collections.reverseOrder());
            long sum = 0;
            for(int i =0; i<gifts.length; i++){
                queue.add(gifts[i]);
            }
            for(int i =0; i<k; i++){
                queue.add((int)(Math.sqrt((int)queue.poll())));
            }
            for(int i =0; i<gifts.length; i++){
                sum += (int)queue.poll();
            }
            return sum;
        }
    }
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글