[백준 | JAVA | 1546번] 평균

728x90
https://www.acmicpc.net/problem/1546

 

 

📝 유튜브 풀이

https://www.youtube.com/watch?v=31Z1tH5frYY&list=PLFgS-xIWwNVU_qgeg7wz_aMCk22YppiC6&index=3

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args)  {
		
        Scanner scanner = new Scanner(System.in);
        
        int N = scanner.nextInt();
        int a[] = new int [N] ;
        
        for(int i=0; i<N; i++){
        	a[i] = scanner.nextInt();
        }
        
        long sum = 0;
        long max = 0;
        
        for(int i=0; i<N; i++){
        	if(max < a[i]) max = a[i];
            sum += a[i];
        } 
        
       System.out.println(sum*100.0/max/N);
	}
}    
  • 변환 점수의 평균을 구하는 식 : (A+B+C)*100/M/3
  • 1차원 배열에 점수를 저장 한 후 , 최고점수와 총합을 구한다.
  • 이후 총합 * 100 /최고점수 / 과목의 수를 계산해 다시 계산한 점수의 평균값을 출력

📝 나의 풀이

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args)  {
		
        Scanner scanner = new Scanner(System.in);
        
        //시험을 본 과목 개수 
        int N = scanner.nextInt();
        
        double sum = 0;
        
        double[] arr = new double[N];
       
        for(int i=0; i<N; i++) {
        	arr[i] = scanner.nextDouble();
        }
        
        Arrays.sort(arr);
        
        for(int i=0; i<arr.length; i++) {
        	
        	//모든 점수를 점수/최고점수*100으로 고침 
        	//arr.length-1은 오름차순정렬 중 가장 끝에있는 숫자이기 떄문에 최고점수
        	sum += arr[i] / arr[arr.length-1]* 100;
        }
        
        System.out.println(sum/arr.length);
	}
}
728x90