Algorithm/acmicpc.net
파이썬 round 함수에 0.5를 입력하면? (#18110)
winney916
2024. 7. 1. 11:05
728x90
#18110 solved.ac https://www.acmicpc.net/problem/18110
정답코드
def round(x):
return int(x) + 1 if (x - int(x)) >= 0.5 else int(x)
n = int(input())
if n == 0:
print(0)
else:
nums = [int(input()) for i in range(n)]
nums.sort()
cutting = round(n * 15 / 100)
# print(nums, cutting)
nums = nums[cutting : n - cutting]
# print(nums)
answer = sum(nums) / len(nums)
print(round(answer))
처음에 잘 짜서 제출했는데, 틀렸다.
이유를 알 수가 없었다.
문제는 다음과 같았다.
문제를 풀기 위해서, 0.5를 1로 반올림 할 필요가 있다.
하지만 파이썬의 round함수는 0.5를 0으로 반올림 한다.
따라서 별도의 라운드 함수를 구성해줘야한다. (*위의 round 함수 정의부분)
음.. 이런거 잊으면 문제풀다가 많이 당황할 것 같다.
잘 알지 못하는 내장함수를 쓰는 것은 위험한 것 같다
알 수 없는 문제가 발생할 때에는 내장함수를 나의 논리대로 재구성 해보면 좋을 것 같다.