본문 바로가기
백준

[백준] 1546번: 평균 - JAVA(자바)

by z00h 2022. 11. 1.

 

 

문제

 

 

 

 

 

 

 

 

풀이

 

 

 

 

보기보다 간단한 문제이다.

 

for문은 총 3번 사용하였고

풀이로 배열을 두가지를 선언하였는데 arr[]이 입력받은 시험점수의 배열이고

arr2[]는 입력받은 점수들을 점수/M*100을 한 점수들의 배열이다.

 

소수자리까지의 연산이 필요하기 때문에 자료형은 double을 사용하였다.

 

maxScore는 입력받은 성적의 최고점수인데 for문을 이용하여 Math.max함수를 써서 

arr[]의 점수들중 최고 점수를 maxScore에 담았다.

 

최고점수가 Math.max함수를 통해 구해졌기때문에 

for문을 통한 연산으로 arr2[]에 들어갈 점수들을 구할 수 있게 된다.

 

3번째 for문으로는 바뀐 성적의 점수들의 합을 구하도록 만들었다.

 

출력문으로 모든 점수들의합(sum) / 과목수(N) 를 통해 평균을 구할 수 있다!

 

 

 

import java.util.Scanner;

public class b1546 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int N = in.nextInt();
        double maxScore = 0;
        double sum=0;

        double arr2[] = new double[N];

        double arr[] = new double[N];
        for(int i=0; i<arr.length; i++){
            arr[i] = in.nextInt();
        }

        for(double i : arr) maxScore = Math.max(i, maxScore);

        for(int i=0; i<arr.length; i++) {
                arr2[i] = arr[i] / maxScore * 100;
        }

        for(int i=0; i<arr2.length; i++) {
            sum=sum+arr2[i];
        }

        System.out.println(sum/N);
    }
}