728x90
반응형

통계를 복습해볼수 있는 쉬운 문제지만 sys를 통해 입력을 빠르게 받지 않으면 시간초과가 뜬다. 

# 시간초과 때문에 정답률이 낮은 것 같다.

  1. 산술평균 : N개의 수들의 합을 N으로 나눈 값
  2. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
  3. 최빈값 : N개의 수들 중 가장 많이 나타나는 값
  4. 범위 : 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
반응형

+ Recent posts