2022년 04월 08일 금요일 - 강남 물가 개비싸


오늘 올려볼 문제는 703번 Kth Largest Element in a Stream 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 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 문제 맞았습니다


생각보다는 문제가 어려웠지만 그래도 잘 풀었다.

내일도 잘 풀었으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts