나의 길

1546번 평균(java) 본문

알고리즘/백준

1546번 평균(java)

MoonjuLee 2023. 12. 4. 14:36

문제를 구현하는 것은 간단하다고 생각했다.

먼저 세준이의 과목을 첫 번째 줄에 입력받고, 두 번째 줄에는 빈칸(" ")으로 구분된 각 과목의 점수를 입력받는다.

 

이후 세준이의 야매(?) 점수 계산법을 통해 {(점수 / 최댓값) * 100} 각 과목의 점수를 바꾸고 바뀐 점수를 통해 우리가 흔히 사용하는 (각 과목 점수의 합 / 과목 수) 평균 식을 적용하여 출력을 하면 된다.

 

그런데 여기서 조금 생각해 보아야 하는 문제가 있다. 바로 예제 출력값에서 볼 수 있는 소수점이다.

이 소수점을 보고 정수형 자료형이 아닌 실수형 자료형을 생각하고 문제를 풀어야겠다고 생각했다.

 

코드

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int subjectNumber = Integer.parseInt(br.readLine()); // 과목 수
        String[] strArr = br.readLine().split(" "); // 각 과목 별 실제 점수
        br.close();

        double[] scoreArr = new double[subjectNumber];
        double maxScore = 0; // 최대 점수
        double sum = 0; // 실제 점수의 합
        for(int i = 0; i < subjectNumber; i++){
            scoreArr[i] = Double.parseDouble(strArr[i]);
            if(scoreArr[i] > maxScore){
                maxScore = scoreArr[i];
            }
            sum += scoreArr[i];
        }
		
        System.out.println((sum/maxScore)*100/subjectNumber); // 과목 별로 계산하는 것이 아니라 한번에 합을 구해 야매(?) 계산법으로 평균 출력

    }
}

 

문제 구현 난이도는 어렵지 않지만 다양한 자료형을 잘 쓰지 않아 헷갈릴 수 있는 문제를 통해 다시 기초를 상기할 수 있어서 도움이 되었다.

'알고리즘 > 백준' 카테고리의 다른 글

10845번 큐(java)  (0) 2024.11.22
1406번 에디터(java)  (1) 2024.11.20
1874번 스택 수열(java)  (3) 2024.11.15
9093번 단어 뒤집기(java)  (1) 2024.09.06
2444번 별 찍기 - 7(java)  (0) 2024.08.31
Comments