728x90
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
float[] score = new float[n];
float sum = 0;
for (int i = 0; i < n; i++) {
score[i] = scanner.nextFloat();
}
Arrays.sort(score);
float m = score[n - 1];
for (int i = 0; i < n; i++) {
sum += score[i] / m * 100;
}
System.out.format("%.2f", sum / n);
scanner.close();
}
}
설명
과목의 개수 n을 입력 받고, 크기가 n인 float형 배열 score를 선언한다.
for문을 이용해 n개의 점수를 입력 받아 score 배열에 저장한다.
Arrays.sort()를 이용해 score 배열을 오름차순으로 정렬하고, 최고점인 score[n-1]을 float형 변수 m에 저장한다.
for문을 이용해 score의 각 데이터를 문제에서 요구하는 대로 변환하여 sum에 더해주고, 모두 더하면 sum / n의 결과값(평균)을 출력한다.
728x90
'JAVA > BOJ' 카테고리의 다른 글
[백준] 1929번: 소수 구하기 (1) | 2021.07.18 |
---|---|
[백준] 4153번: 직각삼각형 (0) | 2021.07.18 |
[백준] 2753번: 윤년 (1) | 2021.07.11 |
[백준] 10172번: 개 (1) | 2021.07.01 |
[백준] 10171번: 고양이 (1) | 2021.07.01 |