[APS] SWEA 1984 : 중간 평균값 구하기

u_yonu·2026년 2월 12일

APS

목록 보기
9/9
post-thumbnail

개요

SWEA 1984 : 중간 평균값 구하기
SWEA 1984 : 중간 평균값 구하기

[문제 분석]

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

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

[제약 사항]

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

[입력]

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

[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

[풀이 전략]

처음 생각했을 때, 생각했던 로직은 다음과 같다
(1) 정수를 배열로 받는다.
(2) 조건문을 이용해서
(3) 맥스값 프린트

[구현코드]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int T = sc.nextInt();  // 테스트 케이스 수

        for (int t = 1; t <= T; t++) {
            int max = 0;

            for (int i = 0; i < 10; i++) {
                int num = sc.nextInt();
                if (num > max) {
                    max = num;
                }
            }

            System.out.println("#" + t + " " + max);
        }

        sc.close();
    }
}

[개선사항]

  1. max 함수 활용
    if (num > max) {
    max = num;
    }
    이 과정을 기반으로 Math 함수인 max를 이용해서 작성할 수 있다.

  2. 개선 코드

package test;

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int T = sc.nextInt();  // 테스트 케이스 수

        for (int t = 1; t <= T; t++) {
            int max = 0;

            for (int i = 0; i < 10; i++) {
                int num = sc.nextInt();
                max = Math.max(max, num);
                		
            }

            System.out.println("#" + t + " " + max);
        }

        sc.close();
    }
}

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
해당 문제는 개인 학습을 위한 비상업적 용도로 사용한 글입니다.

profile
비전공자의 개발도전기

0개의 댓글