반응형
- 알고리즘 분류 : 구현 및 정렬
- 사용 언어 : JAVA
- 문제 요점
- Comparable 인터페이스를 구현해서 정렬하였음.
소스 설명은 주석을 참고해주세요.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class Main {
// Comparable 인터페이스를 구현해서 커스텀 정렬 순서 정의
static class CustomInt implements Comparable<CustomInt>{
int num;
public CustomInt(int num) {
this.num = num;
}
@Override
public int compareTo(CustomInt other) {
if(other.num < this.num) {
return -1;
}
else {
return 1;
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
// 우선순위 큐를 이용해서 풀이
PriorityQueue<CustomInt> pq = new PriorityQueue<>();
StringBuilder sb = new StringBuilder();
for(int i=0; i<N; i++) {
int num = Integer.parseInt(br.readLine());
if(num == 0) {
if(pq.isEmpty()) {
sb.append("0\n");
}
else {
sb.append(pq.poll().num+"\n");
}
}
else {
pq.offer(new CustomInt(num));
}
}
System.out.println(sb);
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 2193번 : 이친수 (JAVA) (0) | 2022.11.13 |
---|---|
[BAEKJOON] 2839번 : 설탕 배달 (JAVA) (0) | 2022.11.06 |
[BAEKJOON] 1520번 : 내리막길 (JAVA) (0) | 2022.10.30 |
[BAEKJOON] 1987번 : 알파벳 (JAVA) (0) | 2022.10.23 |
[BAEKJOON] 11724번 : 연결 요소의 개수 (JAVA) (0) | 2022.10.22 |