Python 백준 2108 통계학
import sys
from collections import Counter
import math
input = sys.stdin.readline
n = int(input())
nums_list = []
for i in range(n):
nums = int(input())
nums_list.append(nums)
a = sum(nums_list) / len(nums_list)
ar = round(a)
print(ar)
nums_list.sort()
mid_index = len(nums_list) // 2
print(nums_list[mid_index])
nums_s = Counter(nums_list).most_common()
if len(nums_s) > 1:
if nums_s[0][1] == nums_s[1][1]:
print(nums_s[1][0])
else:
print(nums_s[0][0])
else:
print(nums_s[0][0])
nums_list.sort()
print(nums_list[-1] - nums_list[0])
최빈값 구하기가 어려웠다.
나머지는 그대로 따라 쓰면 되는 거고,
Counter을 이용해서 튜플형태로받아온다.
여기서 sort를 쓰지 않고, 그대로 받으면, 밸류의 순서대로 정렬해서 받기 떄문에,
받은 리스트안의 튜플에서
첫번째와 두번재를 비교하여 같으면 바로 1번째 인덱스의 0번째 즉 키값을 반환하면 된다.
근데 nums_s의 길이가 1이 넘지 않으면 중복이 없는거니까 [0][0]을 프린트하면 된다.
'Back > Algorithm' 카테고리의 다른 글
백준 10870 피보나치수5 파이썬 (0) | 2021.03.17 |
---|---|
Python 백준 1436 영화감독 (0) | 2021.03.15 |
파이썬 알고리즘 백준 2609 (0) | 2021.03.14 |
Python 백준 9021 괄호 (0) | 2021.03.13 |
백준 9461 파도반 수열 / 파이썬 알고리즘 (0) | 2021.03.13 |