2022년 04월 08일 금요일 - 강남 물가 개비싸
오늘 올려볼 문제는 703번 Kth Largest Element in a Stream 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
생각보다는 좀 어려웠음...
입력
사진에서도 볼 수 있듯이 클래스 초기화용 입력과 클래스 메소드용 입력이 따로 들어온다.
풀이 및 코드
들어온 숫자 중 k번째로 큰 수를 찾아서 리턴하는 문제다.
오늘은 처음부터 정답을 생각해냈다.
Priority Queue를 사용해서 더 큰 수가 들어올 때만 Priority Queue에 넣어서 원하는 수를 구하는 방식으로 문제를 풀었다.
이제 코드를 봐보자!
풀이코드
class KthLargest {
int k;
PriorityQueue<Integer> pq = new PriorityQueue<>();
public KthLargest(int k, int[] nums) {
this.k = k;
for(int num : nums) pq.add(num);
while(pq.size() > k) pq.poll();
}
public int add(int val) {
pq.add(val);
if(pq.size() > k) pq.poll();
return pq.peek();
}
}
제출 화면
생각보다는 문제가 어려웠지만 그래도 잘 풀었다.
내일도 잘 풀었으면 좋겠다.
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 682번 문제를 풀어보았다. (ft. java) (0) | 2022.04.10 |
---|---|
[LeetCode] 347번 문제를 풀어보았다. (ft. java) (0) | 2022.04.09 |
[LeetCode] 1046번 문제를 풀어보았다. (ft. java) (1) | 2022.04.07 |
[LeetCode] 923번 문제를 풀어보았다. (ft. java) (0) | 2022.04.06 |
[LeetCode] 1721번 문제를 풀어보았다. (ft. java) (0) | 2022.04.04 |