Algorithm/Problems
[백준/파이썬] 2108번 통계학
공부좀하시졍
2022. 11. 8. 15:27
https://www.acmicpc.net/problem/2108
2108번: 통계학
첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.
www.acmicpc.net
import sys
from collections import Counter
input = sys.stdin.readline
n = int(input())
nums = []
for _ in range(n):
nums.append(int(input()))
nums.sort()
# 산술평균
print(round(sum(nums)/n))
# 중앙값
print(nums[n//2])
# 최빈값
cnt = Counter(nums).most_common()
if len(nums) > 1:
if cnt[0][1] == cnt[1][1]:
print(cnt[1][0])
else:
print(cnt[0][0])
else:
print(cnt[0][0])
# 범위
print(max(nums)-min(nums))
간단한 문제라고 생각햇지만 최빈값 구하는 것에서 애를 먹었다😅
Counter의 most_common()을 사용해서 입력된 값들의 개수를 구할 수 있다. most_common()은 가장 많이 나오는 요소들을 반환하기 때문에 앞 두 값만 비교해주면 된다.