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 함수 정의부분)
음.. 이런거 잊으면 문제풀다가 많이 당황할 것 같다.
잘 알지 못하는 내장함수를 쓰는 것은 위험한 것 같다
알 수 없는 문제가 발생할 때에는 내장함수를 나의 논리대로 재구성 해보면 좋을 것 같다.
'Algorithm > acmicpc.net' 카테고리의 다른 글
예외를 찾아내는 능력 (#7569 토마토) (1) | 2024.07.03 |
---|---|
파이썬 리스트의 원소를 한번에 출력하고 싶다면 (#14940) (0) | 2024.07.02 |
자기확신과 자기의심 (#28702) (0) | 2024.07.01 |
이런건 어떻게 푸는거야 (#1377 버블소트) (0) | 2024.06.24 |
파이썬 정렬이란2 (#11652 카드) (0) | 2024.06.24 |