-
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int N, sum, topSum, bottomSum; static int[] arr; static double answer, personNum; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new int[N]; for (int i = 0; i < N; i++) { arr[i] = Integer.parseInt(br.readLine()); } Arrays.sort(arr); // 오름차순 정렬 personNum = Math.round(N * 0.15); for (int value : arr) { sum += value; } // topSum, bottomSum for (int i = 0; i < personNum; i++) { bottomSum += arr[i]; } for (int i = N-1; i > N-1-personNum; i--) { topSum += arr[i]; } // 정답 출력 answer = Math.round( (sum-topSum-bottomSum) / (N-personNum*2)); System.out.println((int)answer); } }
- 약간 지저분했는데 성공
- 고민하다가 Arrays.sort() 가 생각나서 그나마 쉽게 풀린듯
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; for(int i=0; i<n; i++) arr[i] = Integer.parseInt(br.readLine()); // 오름차순 정렬 Arrays.sort(arr); int num = (int)Math.round(n*0.15); double sum = 0; for(int i=num; i<n-num; i++) sum += arr[i]; System.out.println((int)Math.round(sum/(n-num*2))); } }
- 다른 사람이 한거 봤는데 엄청 간단하게 했는데 난 이런 생각이 안났음 ...
for문 돌리는걸 너무 단순하게만 생각하는게 문제인듯