[백준 2108 파이썬] - 통계학

zsunny·2022년 7월 9일
0

📌 문제

💯 정답

import sys
from collections import Counter
input = sys.stdin.readline

n = int(input())
nums = [int(input()) for _ in range(n)]

# 산술평균 : 총 합 / n
print(round(sum(nums) / n))

# 중앙값 : 오름차순의 중간 값
nums.sort()
print(nums[n//2])

# 최빈값
cnts = Counter(nums).most_common()
if len(cnts) > 1 and cnts[0][1] == cnts[1][1]:  # 최빈값이 같은 게 2개
    print(cnts[1][0])       # 두번째 최빈값 출력
else:
    print(cnts[0][0])       # 최빈값 출력

# 범위 : 최대 - 최소
print(max(nums) - min(nums))

📝 설명

• 산술평균은 총합 / n

• 중앙값은 오름차순의 중간 값 ( 리스트[총길이//2] )

• 최빈값은 collections 모듈의 most_common()함수를 사용했다.
  " 리스트[ n번째 최빈값 ][ 몇개? ] "
  만약 첫번째 최빈값과 두번째 최빈값이 같으면 (즉, 최빈값이 같은 수가 2개면)
  두번째 최빈값을 출력하고, 그 외의 경우에는 첫번째 최빈값을 출력한다.
  
• 범위는 max - min

⭐️ 알고가기

👉 collections 모듈 알아보기 _ Counter( ), most_common( )

profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글