hye-log

[백준]1546번 평균(JAVA) 본문

CodingTest/Baekjoon

[백준]1546번 평균(JAVA)

iihye_ 2023. 8. 13. 20:05

0. 문제 링크

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

 

1546번: 평균

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

www.acmicpc.net

 

1. 문제 설명

1) 주어진 점수를 (점수 / 최대값 * 100)으로 고친 후 평균 구하기

 

2. 입출력

// input
3
10 20 30

// output
66.66667

 

3. 코드

import java.io.*;
import java.util.*;

public class b1546 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st = null;
		
		int N = Integer.parseInt(br.readLine()); // 과목의 개수
		int[] arr = new int[N]; // 점수 배열
		int M = 0; // 최대값 점수
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
			M = Math.max(M, arr[i]); // 최대값 점수 찾기
		}
		
		double avg = 0; // 새로운 평균
		for (int i = 0; i < N; i++) {
			double newScore = (double)arr[i] / M * 100; // double 형으로 형변환하여 저장
			avg += newScore; // 점수 / 최고점 * 100
		}
		avg /= N; // 과목의 개수로 나누어서 평균 구하기
		
		System.out.println(avg); // 출력
	}

}

 

실행 결과

 

 

4. 회고

1) int / int 를 하면 결과가 int가 나오므로, double 형을 결과로 받기 위해서는 명시적 형변환이 필요

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Baekjoon/b1546.java

 

 

728x90

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준]1181번 단어 정렬(JAVA)  (0) 2023.08.15
[백준]1074번 Z(JAVA)  (0) 2023.08.14
[백준]1259번 팰린드롬수(JAVA)  (0) 2023.08.13
[백준]10809번 알파벳 찾기(JAVA)  (0) 2023.08.13
[백준]10250번 ACM 호텔(JAVA)  (0) 2023.08.13
Comments