[BOJ/Python] 18110 : solved.ac

정나영·2024년 4월 6일
0

👉 문제 링크

👉 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)

0개의 댓글