18110 solved.ac ⬛

kkmdevel·2024년 9월 28일

코딩테스트

목록 보기
9/21

📋문제 정리

  • 문제에 대한 난이도가 여러개 주어진다.
  • 하나 이상이라면 절사평균을 사용한다. 투표수의 15%만큼 제일 작은 수와 큰 수를 제외한 평균
  • 제외된 난이도 평가만을 가지고 평균을 낸다. 평균은 반올림한다.

🎯풀이

  • 정렬과 반올림의 문제이다.
  • 배열로 입력되는 난이도 평가를 받은 후에 배열 길이의 15%를 계산한다. (반올림)
  • 정렬 후 그만큼을 제외한 배열의 값을 더하여 갯수만큼 나눠준 후 반올림한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;

public class Main {

  static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  static StringTokenizer st;
  static StringBuilder sb =  new StringBuilder();

  public static void main(String[] args) throws IOException {
    st = new StringTokenizer(br.readLine());
    int n = Integer.parseInt(st.nextToken());
    int arr[] = new int[n];
    int num = (int)Math.round(n*0.15); //배열의 길이의 15%
    double sum=0; //double이여야함

    for(int i=0;i<n;i++)
      arr[i]=Integer.parseInt(br.readLine());

    Arrays.sort(arr);  // 오름차순 정렬

    for(int i=num;i<n-num;i++)
      sum+=arr[i]; //총 합
    
    double result = sum / (n - 2*num); //double 형식으로 구한다.
    sb.append(Math.round(result));
    
    System.out.println(sb);
    br.close();
  }
}
profile
25/08/12

0개의 댓글