백준
[백준] 1546번: 평균 - JAVA(자바)
z00h
2022. 11. 1. 19:54
문제


풀이
보기보다 간단한 문제이다.
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);
}
}