코테 공부
순회강연(백준 2109번),자바
DaEun_
2022. 7. 7. 15:14
2109번: 순회강연
한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다.
www.acmicpc.net
import java.util.*;
public class Main {
public static void main(String[] args) {
int n;
int max=0;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
ArrayList<Point> arr=new ArrayList<>();
for(int i=0;i<n;i++) {
int p=sc.nextInt(); int d=sc.nextInt();
arr.add(new Point(p,d));
max=Math.max(max, d);
}
Collections.sort(arr, new Comparator<Point>() {
@Override
public int compare(Point o1, Point o2) {
if(o1.p==o2.p) return o1.d-o2.p;
else return o2.p-o1.p;
}
});
int[] dd=new int[max+1];
for(int i=0;i<n;i++) {
int p=arr.get(i).p;
int d=arr.get(i).d;
while(d>0 && dd[d]!=0) {
d--;
}
if(d==0) continue;
else dd[d]=p;
}
int answer=0;
for(int i=1;i<=max;i++) answer+=dd[i];
System.out.println(answer);
}
static class Point{
int p;
int d;
public Point(int p, int d) {
this.p=p;
this.d=d;
}
}
}