[JAVA/1546번] 평균

고지훈·2021년 9월 7일
1

Algorithm

목록 보기
16/68
post-thumbnail

문제


입력 및 출력


풀이

import java.io.*;
import java.util.*;

class Main {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        double maxScore = 0;
        double[] numArray = new double[N];
        for (int i = 0; i < N; i++) {
            numArray[i] = Double.parseDouble(st.nextToken());
            if (numArray[i] > maxScore) {
                maxScore = numArray[i];
            }
        }

        double totalScore = 0;
        for (int i = 0; i < N; i++) {
            totalScore += numArray[i] / maxScore * 100;
        }

        double averageSocre = totalScore / N;
        System.out.println(Math.round(averageSocre * 1000000) / 1000000.0);
    }
}

결과 및 해결방법

[결과]

[정리]

해결방법

  • numArray는 점수를 입력하기 위한 배열로 N만큼 숫자를 입력받는다.
    numArray의 i번째가 maxScore의 값보다 클 경우 maxScorenumArray의 i번째 값을 저장한다.
  • 문제에서 세준이가 조작할 점수는 기존에 받았던 점수 / maxScore * 100이기 때문에 해당 값을 totalScore에 저장하였고, Math.round함수를 사용하여 평균 점수를 averageScore에 저장하였다.
profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글