문제
문제해결
import java.util.Arrays;
import java.util.Scanner;
public class S4_6986 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
double[] arr = new double[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextDouble();
}
//입력 받은 점수 정렬
Arrays.sort(arr);
//절사평균 구하기
double sum = 0.0;
for (int i = k; i < n-k; i++) {//앞뒤로 k개만큼 빼고 합 구하기
sum += arr[i];
}
//평균 구하기
System.out.println(String.format("%.2f", sum/(n-k*2) + 1e-8));
//보정평균 구하기
for (int i = 0; i < k; i++) {//k만큼 좌우로 가까운수 추가
sum += arr[k];
sum += arr[n-k-1];
}
//평균 구하기
System.out.println(String.format("%.2f", sum/n + 1e-8));
}
}
- 자꾸 60몇퍼에서 틀렸다고 해서 반례를 찾아보니 double을 출력하는 부분에 "+ 1e-8"를 추가해주니 문제가 해결되었다. 아마 double의 지수를 없애는 방식인것 같다
'[알고리즘] > 백준' 카테고리의 다른 글
자바 - 구현 - 백준 9093 단어 뒤집기 (0) | 2021.06.12 |
---|---|
자바 - 구현 - 백준 1783 병든 나이트 (0) | 2021.05.26 |
자바 - 구현 - 백준 2581 소수 (0) | 2021.05.22 |
자바 - 구현 - 백준 1292 쉽게 푸는 문제 (0) | 2021.05.18 |
자바 - 구현 - 백준 1978 소수 찾기 (0) | 2021.05.17 |