Computer Science/Algorithm

BOJ 6986: 절사평균 [Python 3]

무니화니 2023. 1. 25. 13:49

이번 문제는 사실상 조금 어이 없게 틀린 문제여서 적어보고 싶었다.

사실 알고리즘 구현은 매우 쉬웠는데, 반올림을 생각을 안 해서 틀렸다.

 

import sys
sys=sys.stdin.readline
n,k=map(int,input().split())
data=[float(input()) for _ in range(n)]
data.sort()
jeol=(sum(data[k:n-k]))/(n-2*k)
print("%.2f" %(jeol+1e-8))
bo=(sum(data[k:n-k])+data[k]*k+data[n-k-1]*k)/n
print("%.2f" %(bo+1e-8))

코드는 다음과 같이, 절사평균은 양 쪽을 제외한 평균, 그리고 보정평균은 남은 양 끝의 값을 변경시켜서 넣었다.

하지만 계속 틀려서, 결국 부동소수점이 문제라는걸 깨닫고, 1e-8이라는 값을 의도적으로 넣어서 오류가 나지 않도록 변경했다.

 

'Computer Science > Algorithm' 카테고리의 다른 글

BOJ 3020: 개똥벌레 [Python 3]  (0) 2023.01.25
BOJ 2668: 숫자고르기 [Python 3]  (0) 2023.01.25
BOJ 12865: 평범한 베낭 [Python 3]  (0) 2023.01.24
BOJ 9251: LCS [Python 3]  (0) 2023.01.24
BOJ 1826: 연료 채우기 [Python 3]  (0) 2023.01.19