[백준/파이썬] 2108번 통계학 풀이

업데이트:



문제 정보


풀이

문제

정수 집합의 산술평균, 중앙값, 최빈값, 범위를 구하는 문제입니다.

코드

import sys
nums = [int(input()) for _ in range(int(sys.stdin.readline()))]

nums.sort()

d = [0]*8001
for n in nums:
    d[n+4000] += 1
tmp = max(d)
most = 4001
for i in range(-4000, 4001):
    if d[i+4000]==tmp:
        if most > i:
            most = i
        else:
            most = i
            break
ln = len(nums)
print(round(sum(nums)/ln))
print(nums[ln//2])
print(most)
print(abs(max(nums)-min(nums)))

설명

정렬과 빈도 배열을 사용해 각 통계값을 계산합니다.

최빈값은 빈도가 같은 값이 여러 개면 두 번째로 작은 값을 출력하는 규칙을 코드에서 처리합니다.



댓글남기기