우리가 아는 평균을 구하는 것이지만,
문제에서 단순히 점수 총합/과목의 갯수가 아니라, 각각 받은 점수를 새로 계산해서 재정의하고 있다.
그리고 그 결과값의 평균을 구하는 문제이다.
아래는 소스.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Baekjoon1546 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 과목의 개수 String[] preGradeArray = br.readLine().split(" "); int[] gradeArray = new int[n]; // 과목의 개수만큼의 각각 성적이 들어간 배열 for(int i=0; i<preGradeArray.length; i++){ gradeArray[i] = Integer.parseInt(preGradeArray[i]); } Arrays.sort(gradeArray); // 오름차순으로 배열 float maxGrade = gradeArray[n-1]; // 문제에서의 M 값, 오름차순으로 정리됐기 때문에 마지막 값이 숫자가 가장 크다. float sumGrade = 0; // float로 한 이유는 소수점까지 구하기 위해서이다. for(int j=0; j<gradeArray.length; j++){ sumGrade += gradeArray[j]/maxGrade*100; // 문제에서 "점수/M*100"에 해당한다 } // sumGrade의 경우, 문제가 알려주는 방식으로 새로 계산한 각 과목들 점수의 총 합이다. System.out.println(sumGrade/n); //평균 } } | cs |