본문 바로가기
백준

[1546] 평균 (JAVA)

by 댈팽이 2024. 3. 13.
728x90

# 문제 설명

세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.

세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.


입력

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.


출력

첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.

 

# 정답 코드

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = Integer.parseInt(sc.nextLine()); //과목 개수
        int[] subject = new int[num]; //점수 배열
        int max = 0; //점수 중 최댓값
        float answer = 0;

        for (int i = 0; i < num; i++) {
            subject[i] = sc.nextInt();

            if (max < subject[i]) {
                max = subject[i];
            }
        }

        for (int i = 0; i < num; i++) {
            float score = (float)subject[i] / max;
            answer += score * 100;
        }

        System.out.println(answer/num);
    }
}

 

과목의 점수를 저장할 과목 개수 크기의 int 배열을 만든다.

점수 최댓값은 max에 저장한다.

 

for문을 돌면서 subject에 값을 저장하고 최댓값을 찾는다.

다시 for문을 돌면서 answer에 주어진 식으로 갱신된 점수를 더한다.

과목 개수로 answer를 나누어 출력한다.

728x90

'백준' 카테고리의 다른 글

[2018] 수들의 합 5 (JAVA)  (1) 2024.03.17
[25966] 배찬우는 배열을 좋아해 (JAVA)  (0) 2024.03.14
[11660] 구간 합 구하기 5 (JAVA)  (4) 2024.03.14
[11659] 구간 합 구하기 4 (JAVA)  (0) 2024.03.14
[11720] 숫자의 합 (JAVA)  (0) 2024.03.13