https://www.acmicpc.net/problem/18110
18110번: solved.ac
5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다.
www.acmicpc.net
처음 문제를 풀었을 때
정말 쉽구나 생각했다.
그러나
제출하고 오류가 나왔을 때
0 division error만 해결하면 되겠구나 했었다,
그런데 계속 틀리는 것을 보니
무엇이 문제인 줄 몰라 검색해보았다.
이 분의 블로그를 보고
파이썬 round() 반올림 사용 시 주의점
round() 파이썬에서는 math 라이브러리를 import 하지 않아도 round 함수를 사용할 수 있네요. 오홋~! 그런...
blog.naver.com
파이썬의 round함수에 문제점이 있어서
우리가 알고있는 반올림함수를 만들어줘야 했다.
sys를 사용하지 않으면
시간초과가 발생한다.
꼭 사용하자..!
import sys
input = sys.stdin.readline
def banolim(num):
if num - int(num) >= 0.5:
return int(num) + 1
else:
return int(num)
n = int(input())
if n:
lst = [int(input()) for _ in range(n)]
lst.sort()
# print(lst)
a = banolim(n * 0.15)
# print(a)
if a != 0:
a_lst = lst[a:-a]
print(banolim(sum(a_lst)/len(a_lst)))
else:
print(banolim(sum(lst)/len(lst)))
else:
print(0)
'CS > algorithm' 카테고리의 다른 글
애드 혹 알고리즘 (0) | 2024.06.08 |
---|---|
[백준 1676번] 팩토리얼 0의 개수 파이썬(python) (0) | 2023.06.08 |
백준 2750 파이썬 (0) | 2023.02.06 |
댓글