코딩테스트
[백준] 1546번 : 평균 (JAVA)
멭아몽
2023. 6. 13. 15:47
1. 문제 분석

이 문제는 알고리즘 개념이 필요없는 간단한 수학 연산 문제이다. 최고점을 만점으로 잡고 산출한 점수의 평균을 구하면 된다
시간복잡도 : O(N)
알고리즘 : 평균 값 구하기
2. 문제 풀이
점수 A, B, C, .. etc를 다시 평균 내면 {A/M*100 + B/M*100 + ...} / 과목 수 이므로 정리하면 (A+B+C)*100 / M * (과목수)이다.
1. 정수배열을 입력 받는다.
2. 최고점수를 찾는다.
3. 공식에 대입한다.
즉, 최고점만 찾는다면 해결되는 문제이다. N의 크기가 작아 시간 제한에 크게 영향을 받지 않는다. (최대 O(n^3))
3. 코드 구현
import java.util.Scanner;
class Main
{
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int max = 0;
int sum = 0;
int temp = 0;
for(int i = 0; i < N; i++){
temp = scanner.nextInt();
if(temp > max){
max = temp;
}
sum += temp;
}
System.out.println(sum*100.0/N/max);
}
}