알고리즘/SWEA 문제풀이

SWEA 1984 - D2) 중간 평균값 구하기

당글공주 2020. 8. 13. 06:46

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pw_-KAdcDFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

10개의 수를 입력 받아, 최대 수와 최소 수를 제외한 나머지의 평균값을 출력하는 프로그램을 작성하라.

(소수점 첫째 자리에서 반올림한 정수를 출력한다.)


[제약 사항]

각 수는 0 이상 10000 이하의 정수이다.


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.


[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

** 배열의 전체 합과 최대 최소를 구한다.

** 마지막에 합에서 최대, 최소를 뺀 값을 구한 후 8개 값의 평균을 구하면 끝~!!

** 단 소수점 첫번째 자리에서 반올림해야 하므로 8로 나누어져야 하지만~!!

** 정수/정수는 정수이므로 소수점 구할 수 없기에 정수/실수로 평균 값을 실수형으로 구한후

** Math.round로 반올림 하였음.

 

import java.util.Scanner;

         class Solution{

                 public static void main(String[] args){

                        Scanner scanner =new Scanner(System.in);

                        int n = scanner.nextInt();

 

                       for(int i=0;i<n;i++) {

                               int[] aArr = new int[10];

                               for(int k=0;k<aArr.length;k++) {

                                     aArr[k] = scanner.nextInt();

                               }

                               int min = 99999;

                               int max = -99999;

                               int sum=0;

                               for(int j=0;j<aArr.length;j++) {

                                       sum+=aArr[j];

                                       if(min>aArr[j])min=aArr[j];

                                       if(max<aArr[j])max=aArr[j];

                              }

                              sum-=(min+max);

                              System.out.println("#"+(i+1)+" "+Math.round((sum/8d)));

                   }

           }

 }