Kth Largest Element in an Array

HeeSeong·2021년 8월 13일
0

LeetCode

목록 보기
6/38
post-thumbnail

🔗 문제 링크

https://leetcode.com/problems/kth-largest-element-in-an-array/


❔ 문제 설명


Given an integer array nums and an integer k, return the kth largest element in the array.

Note that it is the kth largest element in the sorted order, not the kth distinct element.


⚠️ 제한사항


  • 1<=k<=nums.length<=1041 <= k <= nums.length <= 10^4

  • 104<=nums[i]<=104-10^4 <= nums[i] <= 10^4



💡 풀이 (언어 : Java)


단순하게 정렬하고 해당 k위치의 인덱스만 반환하면 끝나는 아무것도 아닌 문제이지만, 힙(PriorityQueue)를 이용해서 풀 수도 있는 문제이다.

import java.util.*;

class Solution {
    public int findKthLargest(int[] nums, int k) {
        Queue<Integer> queue = new PriorityQueue<>();
        // 큐에 수를 넣어주면 알아서 오름차순으로 정렬됨
        for (int n : nums) {
            queue.offer(n);
            // K번쨰로 큰수는 정렬된 수중에 끝 K개의 수중에 제일 앞의 수
            // K개만 남기고 나머지는 버린다
            if (queue.size() > k)
                queue.poll();
        }
        return queue.poll();
    }
}
profile
끊임없이 성장하고 싶은 개발자

0개의 댓글