import sys
from collections import Counter
n = int(sys.stdin.readline())
arr = []
for i in range(n):
arr.append(int(sys.stdin.readline()))
## 위까지 input
def avg(arr):
return round(sum(arr)/n)
def mid(arr):
l = len(arr)
arr.sort()
return arr[l//2]
def many(arr):
arr.sort()
nums_s = Counter(arr).most_common()
if len(nums_s) > 1:
if nums_s[0][1] == nums_s[1][1]:
return nums_s[1][0]
else:
return nums_s[0][0]
else:
return nums_s[0][0]
def range(arr):
_min = min(arr)
_max = max(arr)
if _max > 0:
return _max - _min
else:
return -_min + _max
print(avg(arr))
print(mid(arr))
print(many(arr))
print(range(arr))
최빈값 부분이 어려웠다
Counter.most_common을 통해 최빈값을 튜플 형태로 받은 후
만약 갯수가 1개 이상이면 첫번째와 두번째 비교를 통해 값을 보내면 된다
'알고리즘' 카테고리의 다른 글
<백준> 2231번 파이썬 알고리즘 (0) | 2021.07.08 |
---|---|
<백준> 2164번 파이썬 알고리즘 (0) | 2021.07.07 |
<백준> 1966번 파이썬 알고리즘 (0) | 2021.07.06 |
<백준> 1929번 파이썬 알고리즘 (0) | 2021.07.06 |
<백준> 1874번 파이썬 알고리즘 (0) | 2021.07.06 |