99클럽 코테 스터디 20일차 TIL - heap2

수삼·2024년 11월 16일
0

코딩테스트

목록 보기
25/44

1. 높은 숫자가 우선 순위인 PriorityQueue 선언

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());

2. 입력된 숫자를 모두 담고 N번만큼 꺼내서 출력

        int N = Integer.parseInt(br.readLine());
        for(int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            while(st.hasMoreTokens()) {
                pq.offer(Integer.parseInt(st.nextToken()));
            }
        }

        int rst = 0;
        for(int i = 0; i < N; i++) {
            rst = pq.poll(); // 첫번째 값을 반환
        }

        System.out.println(rst);
    }
}

시간복잡도는 삽입, 삭제 모두 O(NLogN)이다.

0개의 댓글