👉 문제 링크
👉 round 내장함수를 쓰면 안되는 이유
문제가 어렵지는 않지만 새로운 사실을 알게 된 충격이슈로 정리하려고 한다.
보통 반올림을 해야할 경우에는 아무런 의심 없이 round 함수를 쓰곤 했는데
이 함수는 사사오입이 아니었다!!!!!
예를 들어, x.5 일 때
x가 홀수이면 올림, 짝수이면 내림한다.
그래서 이 문제의 경우 반올림 함수를 따로 정의해야 한다.
👉 정답 코드
import sys
input = sys.stdin.readline
def round2(x):
if x - int(x) >= 0.5:
return int(x) + 1
else:
return int(x)
n = int(input())
percent = round2(n * 0.15)
arr =[]
for _ in range(n):
arr.append(int(input()))
arr.sort()
sum = 0
per = n - (percent * 2)
for i in range(percent, n-percent):
sum += arr[i]
if per == 0:
print(0)
else:
answer = round2(sum/per)
print(answer)