boj)18110
2020. 8. 24. 15:01ㆍPS/boj
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문 돌리는걸 너무 단순하게만 생각하는게 문제인듯