이번 문제는 사실상 조금 어이 없게 틀린 문제여서 적어보고 싶었다.
사실 알고리즘 구현은 매우 쉬웠는데, 반올림을 생각을 안 해서 틀렸다.
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 |