문제

세준이는 기말고사를 망쳤다. 그래서 점수를 조작해 집에 가져가기로 결심했다. 일단 세준이는 자기 점수 중 최댓값을 골랐다. 그런 다음 최댓값을 M이라 할 때 모든 점수를 점수/M * 100 으로 고쳤다. 예를 들어 세준이의 최고점이 70점, 수학 점수가 50점이라면 수학 점수는 50/70 * 100이므로 71.43점이다. 세준이의 성적을 이 방법으로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오.

 

입력

1번째 줄에 시험을 본 과목의 개수 N 이 주어진다. 해당 값은 1,000보다 작거나 같다. 2번째 줄에 세준이의 현재 성적이 주어진다. 해당 값은 100보다 작거나 같은, 음이 아닌 정수이고, 적어도 1개의 값은 0보다 크다.

 

출력

1번째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값이 절대 오차 또는 상대 오차가 10^-2 이하이면 정답이다.

 

예제 입력

3
10 20 30

예제 출력

66.666666667

 

문제 분석

변환 점수의 평균을 구하는 식(점수가 A,B,C 인 경우)

(A/M * 100 + B/M * 100 + C/M * 100) / 3 = (A+B+C)*100/M/3

 

코드

import java.util.Scanner;

public class P1546_평균 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int A[] = new int[N];
		for(int i = 0; i < N; i++){
			A[i] = sc.nextInt();
		}
		
		long sum = 0;
		long max = 0;
		
		for(int i = 0; i < N; i++){
			if(A[i] > max){
				max = A[i];
			}
			sum += A[i];
		}
		
		System.out.println(sum*100.0/max/N);
		
	}
}

 

결과

 

Reference

백준 온라인 저지 1546번

'일상이야기 > 알고리즘' 카테고리의 다른 글

(5) 주몽의 명령  (0) 2022.04.18
(4) 연속된 자연수의 합 구하기  (0) 2022.04.18
(3) 구간 합 구하기  (0) 2022.04.13
(1) 숫자의 합  (0) 2022.04.13
알고리즘 스터디 시작  (0) 2022.04.12

+ Recent posts