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))
'Algorithm' 카테고리의 다른 글
| BOJ - 11651번 - 좌표 정렬하기 2 (0) | 2021.04.08 |
|---|---|
| BOJ - 11650번 - 좌표 정렬하기 (0) | 2021.04.08 |
| BOJ - 10814번 - 나이순 정렬 (0) | 2021.04.08 |
| BOJ - 1427번 - 소트인사이드 (0) | 2021.04.08 |
| BOJ - 1181번 - 단어 정렬 (0) | 2021.04.08 |