반올림을 할 때 컴퓨터에서는 가장 가까운 짝수 반올림해주려는 경향이 있다.
예를 들면 1.5를 반올림하면 2가 나오지만 2.5를 반올림하면 2가된다. (우리가 알고있는 수학적 지식으로는 3이 되야한다.)
따라서 반올림이 필요한 산술평균에서 직접 반올림을 해주는 코드를 만들어줘야한다.
import sys
t = int(input())
a = []
for _ in range(t):
a.append(int(sys.stdin.readline()))
def Avg(a):
if sum(a)>=0:
if (sum(a)/t)%1 >= 0.5:
return print(int(sum(a)/t)+1)
else:
return print(int(sum(a)/t))
else:
if abs(abs(sum(a))/t)%1 >= 0.5:
return print(int(sum(a)/t)-1)
else:
return print(int(sum(a)/t))
def Middle(a):
a.sort()
return print(a[t//2])
def Most(a):
s = {}
for i in a:
if i in s:
s[i] +=1
else:
s[i] = 1
max_value = max(s.values())
r = []
for k, v in s.items():
if v == max_value:
r.append(k)
if len(r)>1:
return print(r[1])
else:
return print(r[0])
def Range(a):
big = a[0]
small = a[0]
for i in a:
if big < i:
big = i
if small > i:
small = i
return print(big-small)
Avg(a)
Middle(a)
Most(a)
Range(a)
'백준' 카테고리의 다른 글
큐 - 10845번 (0) | 2022.10.26 |
---|---|
프린터 큐 - 1966번 (0) | 2022.10.24 |
블랙잭 - 2798번 (0) | 2022.10.22 |
스택 수열 - 1874번 (0) | 2022.10.20 |
별 찍기 - 19 - 10994번 (0) | 2022.10.17 |
댓글