215. Kth Largest Element in an Array

최지웅·2024년 10월 10일
0

LeetCode

목록 보기
4/10

(24.10.10)
문제를 먼저 파악해보자. 입력된 배열 중 k번째로 큰 원소를 리턴하면 된다.

    public int findKthLargest(int[] nums, int k) {
        return Arrays.stream(nums)
                .sorted()
                .toArray()[nums.length-k];
    }


간단히 해결하긴 했지만 문제의 맨 마지막에 아래와 같이 적혀있었다.

Can you solve it without sorting?

문제의 분류가 Heap/Priority Queue인 것을 보아 insert만 해도 정렬이 되게끔 하는 Collection을 사용하라는 듯 하다.

자바 API에 PriorityQueue가 있어 add한다음 일정 횟수만큼 poll하여 작성해보았다.

public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> queue=new PriorityQueue<>();
        for (int num : nums)
            queue.add(num);
        for(int i=0; i<nums.length-k; i++)
            queue.poll();
        return queue.poll();
    }

profile
이제 3학년..

0개의 댓글