EunJng

[BOJ] 1546 평균 | Java 본문

PROBLEM/BAEKJOON

[BOJ] 1546 평균 | Java

Eunjng 2023. 5. 6. 22:44

문제

백준 1546번 평균 | 브론즈1

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

 

1546번: 평균

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

www.acmicpc.net

  • 알고리즘 분류 : 수학 | 사칙연산

 

 

풀이 과정

자바 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		double arr[] = new double[n];
		double max = 0;
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i=0; i<n; i++) {
			double num = Double.parseDouble(st.nextToken());
			arr[i] = num;
			if(num > max) {
				max = num;
			}
		}
		
		double sum = 0;
		for(int i=0; i<n; i++) {
			sum += (arr[i] / max * 100);
		}
		System.out.println(sum / n);
	}

}
  • 모든 입력값에 대해 길이 n의 배열에 추가하며 최대값 갱신
  • for문이 종료되면 모든 값이 입력되었고, 최대값이 정해졌기 때문에 sum이라는 변수에 (숫자/최대값*100)을 더한 후, 숫자의 개수인 n으로 나눈 평균 출력
  • '실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.' 라는 조건에 의해 int가 아닌 double형 사용
    이 때, 자동 형변환이 되기 때문에 일부 값은 int로 하여도 되지만, double로 통일하였다.

 

'PROBLEM > BAEKJOON' 카테고리의 다른 글

[BOJ] 1005 ACM Craft | Python  (0) 2023.05.08
[BOJ] 2056 작업 | Python  (0) 2023.05.08
[BOJ] 3052 나머지 | Java | Python  (0) 2023.05.06
[BOJ] 10818 최소, 최대 | Java  (0) 2023.05.06
[BOJ] 17825 주사위 윷놀이 | Python  (1) 2023.05.06