import sys
input = sys.stdin.readline
T = int(input())
nums1 = [] ; nums2 = {}
ns = 0
for i in range(T):
n = int(input())
ns += n
nums1.append(n)
if n not in nums2:
nums2[n]=1
else:
nums2[n]+=1
print(round(ns/T))
nums1.sort()
if T%2==1:
i = (T-1)//2
print(nums1[i])
else:
i = T//2
print((nums1[i]+nums1[i-1])/2)
num = sorted(nums2.items(), key = lambda x:(-x[1],x[0]))
nums2 = dict(num)
v = max(list(nums2.values()))
ls = list(key for key,val in nums2.items() if val==v)
if len(ls) ==1 :
print(ls[0])
else:
ls.sort()
print(ls[1])
print(nums1[-1]-nums1[0])
풀이
딕셔너리를 자유자재로 사용할 줄 알면 쉽게 풀리는 문제다.
리스트에 있는 원소를 count로 개수를 세면 시간복잡도가 높아진다. 그래서 갯수 세기에선 딕셔너리를 많이 사용해왔는데 시간 단축에 좋았다.