본문 바로가기
코딩공부/백준 (java)

[백준 1546] 평균 (java)

by CodingKwon 2021. 7. 5.

문제 링크

https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net

 

나의 코드 (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

댓글