평균 (1546)

Created:

Baekjoon No.1546 문제

Baekjoon No.1546 예제-1 Baekjoon No.1546 예제-2

점수 조작은 나빠요..!

Bash

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
read n
read -a arr

max=$arr
for ((i=1; i<n; i++)); do
	max=$((max < arr[i] ? arr[i] : max))
done

total=0
for ((i=0; i<n; i++)); do
	total=$((total + arr[$i]*100 * 100 / $max))
	arr[$i]=$((arr[$i]*100 * 100 / $max))
done

avg=$((total / n))
n=${avg:: -2}
echo $n.${avg#$n}

100을 한 번 더 곱한 이유는 Bash는 소수점 계산이 안되기 때문에.
같은 이유로 최댓값으로 나누기 전에 100을 먼저 곱해야 한다.

C

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>

int main(void) {
	int n, m, max = 0;
	scanf("%d", &n);

	float arr[n], total = 0;
	for (int i=0; i<n; i++) {
		scanf("%d", &m);
		arr[i] = m;
		max = max < m ? m : max;
	}

	for (int i=0; i<n; i++) {
		total += arr[i] / max * 100;
	}

	printf("%f\n", total/n);

	return 0;
}

Node.js

JavaScript
1
2
3
4
let [n, ...arr] = require("fs").readFileSync(0).toString().trim().split(/ |\n/).map(Number);
let max = Math.max(...arr);
let total = arr.reduce((r, x, i) => { return r + x / max * 100; });
console.log(total / n);

PHP

PHP
1
2
3
4
5
6
7
8
9
10
<?php
	fscanf(STDIN, "%d", $n);
	$arr = explode(" ", trim(fgets(STDIN)));
	$max = max($arr);

	for ($i=0; $i<$n; $i++) {
		$arr[$i] = $arr[$i] / $max * 100;
	}
	echo array_sum($arr)/$n;
?>

Python3

Python
1
2
3
4
5
6
7
8
n = int(input())
arr = list(map(int, input().split()))
m = max(arr)

for i in range(n):
    arr[i] = arr[i] / m * 100

print( sum(arr)/n )

Ruby

Ruby
1
2
3
4
n = gets.chomp.to_i
arr = gets.chomp.split().map {|i| i.to_f}
max = arr.max()
puts arr.map {|i| i / max * 100}.sum() / n

제일 짧은데 제일 오래 걸린다..