Languages/Python

[round] 파이썬 round 의 특이한 .5 처리법

jamong5 2023. 6. 6. 21:57

백준 문제를 풀다가 생각치 못한 round 의 방식을 알게 되었는데요,

 

18110번: solved.ac

5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다.

www.acmicpc.net

 

round 를 일반적으로 생각하는 사사오입 반올림 으로 알고있었는데, 약간 다른 지점이 있었습니다.

round(0.5) # 0
round(1.5) # 2
round(2.5) # 2
round(3.5) # 4
round(4.5) # 4

round(2.5) 와 round(4.5) 에서 3, 5 가 아닌 2, 4의 결과가 나옵니다.

부동 소수점 때문인가 싶어 검색해보니, 파이썬 내장 round 의 경우 아래 int 와 위 int 사이의 거리가 같으면, 짝수를 반환한다고 하네요!

그래서 위 백준의 경우 사사오입의 커스텀 round 를 만들어서 사용했습니다.