https://www.acmicpc.net/problem/13904
13904번: 과제
예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다.
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
class Main{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] array = new int[N][2];
StringTokenizer st = null;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
array[i][0] = Integer.parseInt(st.nextToken());
array[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(array,new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0]-o2[0];
}
});
PriorityQueue<Integer> pq = new PriorityQueue();
int sum = 0;
for(int i = 0; i<N; i++) {
pq.add(array[i][1]);
while(!pq.isEmpty() && pq.size()>array[i][0])
pq.poll();
}
while(!pq.isEmpty()) {
sum+= pq.poll();
}
System.out.println(sum);
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 감시피하기 java 18428번 (0) | 2023.02.08 |
---|---|
[백준] 2606번 바이러스 java (0) | 2022.12.12 |
[백준] 마법사 상어와 비바라기 java 21610번 (0) | 2022.04.05 |
[백준] 2003 수들의 합2 java (0) | 2021.06.28 |
[백준] 구간 합 구하기 4 java (0) | 2021.06.28 |