https://www.acmicpc.net/problem/1927
[풀이]
우선순위 큐를 이용하여서 구현하였다. 이전에 우선순위 큐와 관련하여 프로그래머스 문제를 풀고 정리했던게 도움이 되었다. 우선순위큐의 특성과 메소드를 이용하면 어렵지 않았다. 우선순위 큐를 선언할 때 최소힙으로 구현하는 것, 최대힙으로 구현하는 것만 다시 한번 복습하면 좋을 듯하다!
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.Queue;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bufferedReader.readLine());
Queue<Integer> queue = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
int input = Integer.parseInt(bufferedReader.readLine());
if (input == 0) {
if (queue.isEmpty()) {
System.out.println(0);
} else {
System.out.println(queue.poll());
}
} else {
queue.add(input);
}
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1157번 : 단어 공부(Java) (0) | 2021.07.25 |
---|---|
백준 2012번 : 등수 매기기(Java) (0) | 2021.07.23 |
프로그래머스 : 숨바꼭질(Java) (0) | 2021.07.21 |
백준 2606번 : 바이러스(Java) (0) | 2021.07.16 |
백준 1743번 : 음식물 피하기(Java) (0) | 2021.07.16 |