[Python] 백준 - 2108번

SMongS·2023년 4월 9일
0

CodingTest

목록 보기
47/49

통계학

코드

import sys

input = sys.stdin.readline

N = int(input())

lst = [int(input()) for _ in range(N)]
lst.sort()

dic = {i: 0 for i in lst}
for i in lst:
    dic[i] += 1
    
mx = max(dic.values())
mx_lst = []

for i in dic:
    if mx == dic[i]:
        mx_lst.append(i)
        
# 1. 산술평균
print(round(sum(lst) / N))
# 2. 중앙값
print(lst[N//2])
# 3. 최빈값
if len(mx_lst) > 1:
    print(mx_lst[1])
else:
    print(mx_lst[0])
# 4. 범위
print(max(lst) - min(lst))

산술평균은 리스트 총 합에서 리스트의 수 만큼 나누고 첫번째 소숫점에서 반올림합니다.

중앙값은 리스트를 정렬하고 그 중 중앙에 있는 값을 가져옵니다.

최빈값은 횟수를 카운트하기 위해 딕셔너리를 사용해서 카운트 해줍니다. 그 후 여러 개가 있을 경우를 대비하여 최대 카운트 값에 해당하는 값들을 따로 리스트에 저장합니다. 그리고 길이로 판별하여 복수이면 두 번째 값으로 하고 단수면 첫 번째 값을 가져옵니다.

범위는 가장 큰 값과 가장 작은 값을 나눕니다,

profile
반갑습니당~😄

0개의 댓글