문제 링크
https://www.acmicpc.net/problem/1546
나의 코드 (java)
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
// 과목 수
int n = sc.nextInt();
// 배열 생성
float arr[] = new float[n];
for (int i=0; i<n; i++){
arr[i] = sc.nextInt();
}
// 배열 정렬
Arrays.sort(arr);
// 최고 과목 점수
float m = arr[n-1];
// 새 과목 점수
float arr2[] = new float[n];
// arr2를 순차적으로 돌아 나머지가 있으면 카운트 +1
for (int i=0; i<n; i++){
arr2[i] = arr[i] / m * 100;
}
// 계산된 arr2의 합
float sum = 0;
for (int i=0; i<n; i++){
sum += arr2[i];
}
// sum을 개수만큼 나눠서 평균을 구함
float result = sum / n;
// 결과
System.out.println(result);
}
}
최고 점수를 찾기 위해 Arrays.sort()를 이용하여 가장 끝에 있는 값이 최대 값임을 쉽게 찾을 수 있습니다.
이 문제는 자료형을 float이나 double를 사용해야 정확한 답을 구할 수 있습니다.
'코딩공부 > 백준 (java)' 카테고리의 다른 글
[백준 4344] 평균은 넘겠지 (java) (0) | 2021.07.05 |
---|---|
[백준 8958] OX퀴즈 (java) (0) | 2021.07.05 |
[백준 3052] 나머지 (java) (0) | 2021.07.05 |
[백준 2577] 숫자의 개수 (java) (0) | 2021.07.05 |
[백준 2562] 최댓값 (java) (0) | 2021.07.05 |
댓글