728x90
문제
https://www.acmicpc.net/problem/18110
접근 방법
- N이 주어졌을때 30%의 절사평균을 하여 상위 15% 하위 15%를 제외한다.
- 따라서 배열을 정렬하여 Math.round를 통해 반올림된 인원을 제외한 나머지를 반복문을 돌며 더해준다.
- 더하고 난 뒤 평균으로 나눌때에도 첫째자리 반올림을 통해 답을 구하는 문제이다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
private static StringBuilder sb;
private static BufferedReader br;
private static StringTokenizer st;
private static int N;
private static int[] arr;
private static float sum;
//입력
public static void input() throws Exception {
br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
arr = new int[N];
for(int i = 0 ; i < N ; i++){
arr[i] = Integer.parseInt(br.readLine());
}
}
//실행
public static void process() {
Arrays.sort(arr);
int num = (int)Math.round(N*0.15);
for(int i = num ; i < N-num ; i++){
sum+=arr[i];
}
System.out.println(Math.round(sum/(N-num*2)));
}
public static void main(String[] args) throws Exception {
input();
process();
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[Java] 백준 2725번 : 보이는 점의 개수 (0) | 2024.05.14 |
---|---|
[Java] 백준 15736번 : 청기 백기 (0) | 2024.05.14 |
[Java] 백준 15829번 : Hashing (0) | 2024.05.10 |
[Java] 백준 11866번 : 요세푸스 문제 0 (0) | 2024.05.09 |
[Java] 백준 11651번 : 좌표 정렬하기 2 (0) | 2024.05.09 |