import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// ISC - L1
Scanner sc = new Scanner(System.in);
int CN = sc.nextInt();
// PRe
PriorityQueue<Integer> myQueue = new PriorityQueue<>(((o1, o2) -> {
int first_abs = Math.abs(o1);
int second_abs = Math.abs(o2);
if (first_abs == second_abs)
return o1 > 02 ? 1 : -1;
else
return first_abs - second_abs;
}));
// L2 + Operating Heap
for (int i = 0; i < CN; i++) {
int code = sc.nextInt();
if (code == 0) {
if (!myQueue.isEmpty()) {
myQueue.poll();
System.out.println(myQueue.poll());
} else {
System.out.println("0");
}
} else {
myQueue.add(code);
}
}
}
}
시행 코드 == 0 분기에서
println(myQueue.poll()); 위에 myQueue.poll()을 넣는 것은
중복 작업이 되는 것임(삭제할 것)
'코테 기초' 카테고리의 다른 글
if 문을 괄호없이 사용해도 되지만, 선언은 안된다₩ (0) | 2022.12.08 |
---|---|
checker 배열 = 커서 = for 문으로 커서 잡는다 (0) | 2022.12.08 |
PriorityQueue 사용 (0) | 2022.12.07 |
if 시행공간 (0) | 2022.12.06 |
if ~ else : boolean 스위치를 만들어두고 사용 (0) | 2022.12.06 |