수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자.
N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오.
예제 입력1
5 1 3 8 -2 2
예제 출력1
2 2 1 10
import sys
from collections import Counter
n = int(sys.stdin.readline())
num = []
for _ in range(n):
num.append(int(sys.stdin.readline()))
def avg (a):
total = 0
for i in a:
total += i #sum(a) / len(a) 해도됨
result = total / len(a)
return result
def mid (a):
a.sort()
result = a[len(a)//2]
return result
def most (a):
first = Counter(num).most_common()
if n == 1:
return num[0]
if len(num) > 1:
if first[0][1] == first[1][1]:
best = (first[1][0])
else:
best = (first[0][0])
return best
def range(a):
return max(a) - min(a)
print(round(avg(num)))
print(mid(num))
print(most(num))
print(range(num))
🧷(나만 알아듣는) 추가설명
round()는 반올림
최빈값에서 예를들어 counter( {1,3} , {2,3} ) 1과2가 둘다 3번 나왔다고하면if first[0][1] == first[1][1]: # 최빈값을 비교 best = (first[1][0]) # 그 최빈값을 가지고 있는 두번째 숫자 넣어줘라 else: best = (first[0][0]) # 아니면 첫번째 숫자 넣어줘라