Codingtest

[코딩테스트] 백준 1546번 평균 해설집 (Java)

AlexHouse 2022. 10. 23. 22:10
728x90

이 문제는 나름 빠르게 풀었던 문제같다.


문제

 

정답

package codingTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
    
    public static void main(String[] args) throws IOException { // Null 예외 처리
        
    	
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 버퍼 선언
    	
    	
    	double A = Double.parseDouble(br.readLine()); // A는 데이터 타입 Double의 변수임
    	double[] arr = new double[(int) A]; // 배열은 double이나 배열의 갯수(A)는 정수타입을 의미
    	double B; // 데이터 타입 Double의 변수 B
    	double max = 0; // 최대값
    	double sum = 0; // 총 합
    	double avg = 0; // 평 균

    	StringTokenizer st = new StringTokenizer(br.readLine()); // " " 띌 때마다 구분 할 것임
	    	for(int i=0; i<A; i++) { // A 갯수 만큼 반복 시킬 것임
	    		B = Double.parseDouble(st.nextToken()); // B는 데이터 타입 Double의 값
	    		arr[i] = B; // arr[0] 부터 순서대로 B의 값을 집어 넣어줌
	    		
	    		if(arr[i] >= max) { // 만약 arr[0]이 max보다 크면
	    			max = arr[i]; // 큰 녀석으로 max값을 교체함
	    		}
	    	}
	    	
	    	for(int x=0; x<A; x++) { // 반복문 A 전까지만 반복
	    		Double[] brr = new Double[(int)A]; // brr 배열안에 A 갯수 들어감 데이터타입은 Double
	    		
				brr[x] = arr[x]*100/max; // 배열안에 문제의 주어진 조건 삽입
				
				sum += brr[x]; // 순서대로 sum 값에 더해짐
			}
	    	
	    	avg = sum/A; // 총 합 에서 A의 갯수 만큼 나누면 평균임
	    	System.out.println(avg);	 // 평균 호출하셈
	    	br.close();// 버퍼 종료
    
    }
}

 

설명은 주석으로 

 

친절하게 적어 놓았다.

 

 


 

To be continue..

728x90