[BOJ]108号:統計学


質問する


2108号:統計学
1.算術平均:N個と/N
2.中央値:N個の昇順時の中央位置値
3.最も頻繁な値:出現回数が最も多い値
4.範囲:最低価格-最高価格

条件


入力
1. 1 <= N <= 500000
2.Nは奇数
3.整数絶対値<=4000
しゅつりょく
1.算術平均、小数点1位四捨五入round()
2.中央値
3.最小値、複数->次
4.範囲
from collections import Counter
import sys

n = int(sys.stdin.readline())
numbers = [int(sys.stdin.readline()) for _ in range(n)]
number_list = list(set(numbers))

# 산술평균
math_avg = round(sum(numbers) / n)

# 중앙값
mid_avg = sorted(numbers)[n//2]

# 최빈값
freq = Counter(numbers)
max_count = freq.most_common(1)[0][1]
freq_list = sorted(filter(lambda x: freq[x] == max_count, freq.keys()))
freq_avg = freq_list[1] if len(freq_list) > 1 else freq_list[0]

# 범위
range_avg = max(numbers) - min(numbers)

print(math_avg)
print(mid_avg)
print(freq_avg)
print(range_avg)

に注意


Sys入力は500000個より大きい.stdin.readline()で入力を受信する必要があります.