알고리즘 공부/boj
boj 1655: 가운데를 말해요
소연쏘
2021. 1. 3. 15:51
시간초과를 해결하기 위해 사용
- BufferdReader
- StringBuilder
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
PriorityQueue<Integer> maxQueue = new PriorityQueue<>();
PriorityQueue<Integer> minQueue = new PriorityQueue<>((o1, o2) -> o2.compareTo(o1));
StringBuilder sb = new StringBuilder("");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(br.readLine());
maxQueue.add(num);
if ((maxQueue.size() + minQueue.size()) % 2 != 0) {
minQueue.add(maxQueue.poll());
} else {
if (minQueue.peek() > num) {
maxQueue.add(minQueue.poll());
minQueue.add(maxQueue.poll());
}
}
sb.append(minQueue.peek() + "\n");
}
System.out.println(sb);
}
}