728x90
반응형
통계를 복습해볼수 있는 쉬운 문제지만 sys를 통해 입력을 빠르게 받지 않으면 시간초과가 뜬다.
# 시간초과 때문에 정답률이 낮은 것 같다.
- 산술평균 : N개의 수들의 합을 N으로 나눈 값
- 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
- 최빈값 : N개의 수들 중 가장 많이 나타나는 값
- 범위 : N개의 수들 중 최댓값과 최솟값의 차이
from collections import Counter
import sys
li = []
for _ in range(int(input())):
li.append(int(sys.stdin.readline()))
li.sort()
ave = round(sum(li)/len(li)) # 산술평균
if len(li) % 2 == 1:
median = li[len(li)//2]
else:
median = round((li[len(li)//2-1] + li[len(li)//2])/2) # 중앙값
cnt = Counter(li)
cnt_sort = cnt.most_common()
max_cnt = cnt_sort[0][1]
max_cnt_li = []
for c in cnt_sort:
if c[1] == max_cnt:
max_cnt_li.append(c[0])
if len(max_cnt_li) > 1:
mode = max_cnt_li[1]
else:
mode = max_cnt_li[0] # 최빈값
li_range = max(li)-min(li) # 범위
print(ave)
print(median)
print(mode)
print(li_range)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2217번 로프(python) (0) | 2020.02.05 |
---|---|
백준 알고리즘 2163번 초콜릿 자르기(python) (0) | 2020.02.05 |
백준 알고리즘 1463번 1로 만들기(python) (0) | 2020.02.05 |
백준 알고리즘 1748번 수 이어 쓰기 1(python) (0) | 2020.02.04 |
백준 알고리즘 2010번 플러그(python) (0) | 2020.02.04 |