백준 2108 - 통계학 (파이썬)
Updated:
Answer
from sys import stdin
n = int(stdin.readline())
counts = [0] * 8001
s = 0
for i in stdin:
counts[int(i) + 4000] += 1
maxc = max(counts)
mode = mcnt = 0
idx = 0
med = None
mi, ma = 4001, -4001
for i in range(8001):
cnt = counts[i]
if cnt == 0:
continue
num = i - 4000
s += num * counts[i]
if cnt == maxc and mcnt < 2:
mode = num
mcnt += 1
mi = min(mi, num)
ma = max(ma, num)
idx += counts[i]
if idx >= n // 2 + 1 and med == None:
med = num
print(round(s / n), med, mode, ma - mi, sep = '\n')