알고리즘

[백준 1546] 평균 Java 풀이

빠르게 핵심만 2024. 5. 13. 12:32

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

 

접근

과목의 개수가 n, 최대 점수를 m, 점수의 합을 s라고 하면 s / m * 100 / n의 식으로 문제를 쉽게 풀 수 있습니다.

예를 들어, n이 3이고 각 과목의 점수를 a, b, c라고 하면

(a / m * 100 + b / m * 100 + c / m * 100) / 3 = (a + b + c) / m * 100 / 3의 식이 나오게 됩니다.

 

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 입력 처리
		int n = Integer.parseInt(br.readLine());
		int maxScore = 0;
		int sum = 0;

		StringTokenizer st = new StringTokenizer(br.readLine());
		for (int i = 0; i < n; i++) {
			int score = Integer.parseInt(st.nextToken());
			maxScore = Math.max(maxScore, score);
			sum += score;
		}

		// 결과 출력
		System.out.println((sum * 1.0) / maxScore * 100 / n);
	}
}