728x90
https://www.acmicpc.net/problem/11286
우선순위 큐를 사용하여 해결할 수 있었다.
음수일 경우에는 q2에 넣었으며 q2는 내림차순 정렬된 큐이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
PriorityQueue<Integer> q = new PriorityQueue<>();
PriorityQueue<Integer> q2 = new PriorityQueue<>(Collections.reverseOrder());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(br.readLine());
if (num == 0) {
if (q.isEmpty()) {
System.out.println(0);
continue;
}
if (!q2.isEmpty()) {
if (q.peek() == Math.abs(q2.peek())) {
q.poll();
System.out.println(q2.poll());
} else
System.out.println(q.poll());
} else
System.out.println(q.poll());
} else {
q.add(Math.abs(num));
if (num < 0)
q2.add(num);
}
}
}
}
'Java' 카테고리의 다른 글
[백준 20920] 영단어 암기는 괴로워 (JAVA) (0) | 2023.02.22 |
---|---|
[백준 10825] 국영수 (JAVA) (0) | 2023.02.21 |
[백준 20440] 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 (JAVA) (0) | 2023.02.21 |
[백준 11650] 좌표 정렬하기 (JAVA) (0) | 2023.02.19 |
[백준 10942] 팰린드롬? (JAVA) (0) | 2023.02.17 |