# 평균, 중앙값, 최빈값, 범위 리턴
# 평균 - n개수의 합 // n
import sys
n = int(input())
nums = sorted(int(sys.stdin.readline()) for _ in range(n))
avg = round(sum(nums) / n) # 평균
mid = nums[len(nums) // 2] # 중앙값
range = nums[-1] - nums[0] # 범위
mode_dict = {} # 최빈값 담을 딕셔너리
for i in nums: # 요소별 빈도수 저장
if i in mode_dict:
mode_dict[i] += 1
else:
mode_dict[i] = 1
# 최빈값에 해당하는 요소들만 필터링
mode = list(filter(lambda x: mode_dict[x] == max(mode_dict.values()), mode_dict.keys()))
print(avg)
print(mid)
# 최빈값이 여러개인 경우 두번째로 작은 수 리턴
print(mode[1] if len(mode) > 1 else mode[0])
print(range)
https://www.acmicpc.net/problem/2108
2108번: 통계학
첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.
www.acmicpc.net
'study > Algorithm' 카테고리의 다른 글
[백준] 파이썬 19638 : 센티와 마법의 뿅망치 (0) | 2024.04.09 |
---|---|
[백준] 파이썬 2304 : 창고 다각형 (0) | 2024.04.09 |
[백준] 파이썬 1072 : 게임 (0) | 2024.04.09 |
[백준] 파이썬 2110번 : 공유기 설치 (0) | 2024.04.05 |
[백준] 파이썬 2470번: 두 용액 (1) | 2024.04.05 |