[SWEA] <D2> 1984. 중간 평균값 구하기 (Java)

kimjy·2021년 7월 27일
0

알고리즘

목록 보기
10/11
post-thumbnail

[SWEA] 1984. 중간 평균값 구하기 (Java)

[문제 바로가기] https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5Pw_-KAdcDFAUq&categoryId=AV5Pw_-KAdcDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1

문제

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

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

입력

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

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

출력

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

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

※ 제약 사항

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


풀이

  • 들어오는 수 모두 더하고 최대값, 최소값만 빼기
  • 소수점 첫째자리 반올림은 Math.round() 함수 사용

코드

import java.util.Scanner;

public class N1984 {
    static int Answer;
    
    public static void main(String[] args) {
        // TODO 1984 중간 평균값 구하기
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        
        for(int test_case = 1; test_case <= T; test_case++) {
            
            int max = Integer.MIN_VALUE;
            int min = Integer.MAX_VALUE;
            
            int num, sum = 0;
            for(int i = 0; i < 10; i++) {
                num = sc.nextInt();
                
                sum += num;
                max = Math.max(max, num);
                min = Math.min(min, num);
            }
            
            sum = sum - max - min;
            Answer = (int)Math.round(sum/8.0);
            
            System.out.println("#" + test_case + " " + Answer);
        }
    }
}
profile
초보 개발자

0개의 댓글