99클럽 코테 스터디 19일차 TIL - heap

수삼·2024년 11월 15일
0

코딩테스트

목록 보기
24/44

1. PriorityQueue 선언

PriorityQueue

순서와 상관없이 우선순위가 높은 데이터가 먼저 나가는 데이터 구조다.
아래처럼 Collections.reverseOrder()를 넣어 선언하면 우선순위가 높은 큰숫자가 먼저 나온다. 문제에선 최소 값을 출력해야하기 때문에 기본형으로 선언해준다.

PriorityQueue<Integer> pQ = new PriorityQueue<>(Collections.reverseOrder());

2. 큐가 비어있지 않으면 poll로 최소값을 빼내고 그 값을 출력한다.

        PriorityQueue<Integer> heap = new PriorityQueue<>();
    for (int i = 0; i < n; i++) {
        int input =  Integer.parseInt(br.readLine());
        switch (input) {
            case 0:
                bw.write(!heap.isEmpty() ? (heap.poll() + "") : (0 + ""));
                bw.write("\n");
                break;
            default:
                heap.add(input);
                break;
        }
    }

    bw.flush();
    bw.close();
    br.close();
}

}

0개의 댓글