코드와이
[BAEKJOON] 1655. 가운데를 말해요 본문
문제링크
1655번: 가운데를 말해요
첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1
www.acmicpc.net
package acmicpc.Gold2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class 가운데를_말해요 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pqMin = new PriorityQueue<Integer>((o1 ,o2) -> o2 - o1);
PriorityQueue<Integer> pqMax = new PriorityQueue<Integer>();
for(int i = 0 ; i < n ; i ++) {
int x = Integer.parseInt(br.readLine());
if(pqMin.size() == pqMax.size()) {
pqMin.add(x);
if(!pqMax.isEmpty() && pqMin.peek() > pqMax.peek()) {
pqMax.add(pqMin.poll());
pqMin.add(pqMax.poll());
}
} else {
pqMax.add(x);
if(pqMin.peek() > pqMax.peek()) {
pqMax.add(pqMin.poll());
pqMin.add(pqMax.poll());
}
}
sb.append(pqMin.peek()).append("\n");
}
sb.setLength(sb.length()-1);
System.out.println(sb);
}
}
'acmicpc' 카테고리의 다른 글
[BAEKJOON] 11054. 가장 긴 바이토닉 부분 수열 (0) | 2021.05.06 |
---|---|
[BAEKJOON] 11722. 가장 긴 감소하는 부분 수열 (0) | 2021.05.06 |
[BAEKJOON] 12015. 가장 긴 증가하는 부분 수열 2 (0) | 2021.04.29 |
[BAEKJOON] 10942. 팰린드롬? (0) | 2021.04.29 |
[BAEKJOON] 1699. 제곱수의 합 (0) | 2021.04.27 |