시간제한 2초 = 2억번의 연산 안에 해결해야한다.
첫번째 줄 = 과목수
두번째 줄 = 각 과목 점수
각 과목 점수 중 최대값을 M 으로 칭하고 모든 점수를 연산을 통해 새로운 점수로 고친 후 새로운 평균을 구해야 한다.
입력받은 점수를 배열에 저장한다.
입력받은 점수 중 최댓값을 M에 저장해야한다.
모든 점수가 저장된 배열을 순회하며 연산을 수행 후 최종값을 배열의 길이로(과목수) 나누어야 새로운 평균이 나온다.
Ex) 과목수가 3개 라면?
long N = 과목 수
long[] numArr = 길이가 N인 배열 선언 및 초기화
long M = 최고점 저장
long total = 모든 점수 누적합
for(int i=0; i<numArr.length; i++) {
numArr[i] = 과목 점수들 입력받기
}
for(numArr 순회) {
if(M < numArr[i]) M = numArr[i]
total += numArr[i]
}
// 실수 타입으로 반환해야 한다.
avg = total / M * 100.0 / N
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main( String[] args ) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
long N = Integer.parseInt(st.nextToken()); // 과목 수 입력 받기
long[] numArr = new long[(int)N]; // 길이가 N인 배열 선언
long M = 0;
long total = 0;
st = new StringTokenizer(br.readLine());
for (int i = 0; i < numArr.length; i++) {
numArr[i] = Integer.parseInt(st.nextToken());
}
for (long i : numArr) {
if (M < i) M = i;
total += i;
}
bw.write(total * 100.0 / M / N + "\n");
bw.flush();
bw.close();
}
} // end