- 알고리즘/개인공부
[자료구조] 평균 구하기 / 백준 1546
더모어더베러
2024. 6. 16. 15:01
문제
https://www.acmicpc.net/problem/1546
풀이
최고점 M 으로 나눈후 100을 곱한값의 평균값을 구하는 방식으로 다음과 같이 나타낼수 있습니다.
- 변환 점수의 평균을 구하는 식 (점수가 a,b,c인 경우)
(a / M * 100 + b / M * 100 + c / M * 100) / 3
위의 식은 다시 아래와 같이 최소화 할수 있습니다.
( a + b + c ) * 100 / M / 3
그냥 연산을 편리하게 하기 위해 최소화 한거지만 처음 식대로 알고리즘을 짜도 문제는 없습니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
class Main { // 백준 제출할때는 class Main으로 변경하여 제출 해야함
public static void main(String[] args) {
try {
// Scanner 사용
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 M = 0;
for (int i = 0; i < N; i++) {
if (A[i]>M) M = A[i]; // 배열중 가장
sum += A[i];
}
System.out.println(sum*100.0/M/N);
} catch (Exception e) {
e.printStackTrace();
}
}
}