알고리즘 공부

[백준 7662번] 이중 우선순위 큐 - java

철매존 2022. 2. 11. 17:11
728x90

문제 설명

1. 테스트 케이스가 T번 주어진다. 해당 테스트 케이스들에 우선 순위 큐에 시도학 연산 N번이 주어진다.

2. I는 입력, D는 삭제이고 D에서 -1이면 최소값, 1은 최대값을 삭제한다. D시도 시 큐가 비어있으면 연산하지 않는다.

3. 각 테스트 케이스마다 최대값과 최소값을 구하면 된다. 참고로 큐가 비어있으면 EMPTY를 출력한다.

풀이 과정

 1. 문제가 우선순위 큐이기 때문에 가장 간단히 구현할 수 있는 우선순위 큐를 사용하면 시간 초과가 난다....???

 2. 문제의 난이도 자체는 별로 어려울 것이 없다. 분기를 여러 번 하면 된다.

D일때 -> 비어있으면 continue, 아니면 1과 -1에 따라 삭제하기

I면 그냥 add하기

 3. 그렇지만 우선순위 큐로는 구하려 하면 에러가 나기 때문에...TreeMap을 사용해야 한다.

 3. 딱히 설명할 내용이 없다.... 주석으로 적어둠

실패한 코드(1)

실패한 코드(2)

성공한 코드