반응형
BOJ 1781 : 컵라면 풀이 코드
import java.io.*;
import java.util.*;
public class Main {
static class Problem {
int ramen;
int time;
Problem(int time, int ramen) {
this.ramen = ramen;
this.time = time;
}
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
PriorityQueue<Problem> deadline = new PriorityQueue<>((o1, o2) -> o1.time - o2.time);
for (int i = 0; i < n; i++) {
StringTokenizer str = new StringTokenizer(br.readLine(), " ");
deadline.add(new Problem(Integer.parseInt(str.nextToken()), Integer.parseInt(str.nextToken())));
}
PriorityQueue<Problem> rst = new PriorityQueue<>((o1, o2) -> o1.ramen - o2.ramen);
if (!deadline.isEmpty()) {
rst.add(deadline.poll());
while (!deadline.isEmpty()) {
Problem l = deadline.poll();
if (l.time == rst.size()) {
if (l.ramen > rst.peek().ramen) {
rst.poll();
rst.add(l);
}
} else {
rst.add(l);
}
}
}
int total = 0;
while (!rst.isEmpty()) {
total += rst.poll().ramen;
}
bw.write(total + "\n");
bw.flush();
bw.close();
br.close();
}
}
반응형
'코딩 문제 풀이 > 백준' 카테고리의 다른 글
[백준] 자바 문제 풀이 2696 : 골드2 (0) | 2023.10.04 |
---|---|
[백준] 자바 문제 풀이 2042 : 골드1 (0) | 2023.10.04 |
[백준] 자바 문제 풀이 1253 : 골드4 (0) | 2023.09.26 |
[백준] 자바 문제 풀이 1275 : 골드1 (0) | 2023.09.26 |
[백준] 자바 문제 풀이 5676 : 골드1 (0) | 2023.09.26 |