[백준] PS/Java [실랜디]
[백준 2865] 나는 위대한 슈퍼스타K - JAVA
SH3542
2025. 5. 4. 05:38
https://www.acmicpc.net/problem/2865
각 참가자의 최대 점수를 맵핑하고 정렬
높은 점수부터 k개를 뽑아서 더하고 소수점 첫째자리까지 반올림해서 출력
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
double[] l = new double[101];
for (int i = 0; i < b; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < a; j++) {
int p = Integer.parseInt(st.nextToken());
double sc = Double.parseDouble(st.nextToken());
l[p] = Math.max(l[p], sc);
}
}
Arrays.sort(l);
double ans = 0;
int idx = 100;
while (c-- > 0) {
ans += l[idx--];
}
System.out.println(Math.round(ans * 10) / 10d);
}
}