Algorithm
BOJ - 2108번 - 통계학
테니드2
2021. 4. 8. 00:32
2108번: 통계학
첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.
www.acmicpc.net
코드:
from collections import Counter
import sys
def average(data):
avg = sum(data) / len(data)
return round(avg)
def mid_value(data):
if len(data) == 1:
return data[0]
else:
return data[len(data)//2]
def mode(data):
if len(data) == 1:
return data[0]
counter = Counter(data).most_common()
if counter[0][1] == counter[1][1]:
return counter[1][0]
else:
return counter[0][0]
def scope(data):
if len(data) == 1:
return 0
else:
return data[len(data)-1] - data[0]
# 데이터 입력받기
N = int(sys.stdin.readline())
data = []
for _ in range(N):
data.append(int(sys.stdin.readline()))
data = sorted(data)
# 산술평균
print(average(data))
# 중앙값
print(mid_value(data))
# 최빈값
print(mode(data))
# 범위
print(scope(data))