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.
단순하게 정렬하고 해당 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();
}
}