boj)18110

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

'PS > boj' 카테고리의 다른 글

boj)10162  (0) 2020.08.24
boj)11966  (0) 2020.08.24
boj)1049  (0) 2020.08.24
boj)1475  (0) 2020.08.23
boj)1919  (0) 2020.08.23