JiSoo's Devlog
[백준 / 파이썬] 2108번 통계학 본문
import sys
from collections import Counter
n = int(sys.stdin.readline())
a = []
for i in range(n):
a.append(int(sys.stdin.readline()))
def mean(num):
return round(sum(num)/len(num))
def median(num):
num.sort()
mid = num[len(num)//2]
return mid
def mode(num):
d = Counter(num)
k = d.most_common()
if len(num) > 1:
if k[0][1] == k[1][1]:
mod = k[1][0]
else:
mod = k[0][0]
else:
mod = k[0][0]
return mod
def scope(num):
return max(num) - min(num)
print(mean(a))
print(median(a))
print(mode(a))
print(scope(a))
최빈값 구하는 부분이 어려웠던 문제 같다
most_common 함수로 최빈값을 찾을 수 있는데 같은 빈도를 가지는 수는 원래 시퀀스에 있는 순서대로 나열된다
k[0][1]은 가장 먼저 나온 최빈값 빈도수이고 k[1][1]은 그다음 최빈값의 빈도수
이 두 개가 같으면 최빈값이 2개 이상이라는 건데 두 번째로 작은 값을 골라야 하기 때문에 k[1][0] 저장
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 1874번 스택 수열 (0) | 2024.01.14 |
---|---|
[백준 / 파이썬] 2231번 분해합 (0) | 2024.01.13 |
[백준 / 파이썬] 2775번 부녀회장이 될테야 (1) | 2024.01.13 |
[백준 / 파이썬] 10773번 제로 (0) | 2024.01.13 |
[백준 / 파이썬] 4949번 균형잡힌 세상 (0) | 2024.01.13 |