1. 문제와 예제
2. 전체 코드
import sys
input = sys.stdin.readline
# 입력 받기
n = int(input().rstrip()) # 난이도 의견의 개수
lst = [] # 난이도 의견 리스트
# 직접 정의한 반올림 함수
def my_round(val):
if (val - int(val) >= 0.5):
return int(val) + 1
else:
return int(val)
if n == 0: # 특수한 경우 먼저 처리
print(0)
else:
# 난이도 의견 리스트 만듦
for _ in range(n):
lst.append(int(input().rstrip()))
lst.sort() # 정렬
m = my_round(n * 0.15) # 위아래 각각 제외할 난이도 의견 수
res = 0 # 계산한 문제 난이도
for i in range(m, n-m):
res += lst[i]
# 결과 출력하기
print(my_round(res / (n-2*m)))
3. 풀이
파이썬에 내장되어 있는 round 함수는 사사오입이 아닌 오사오입 반올림이다. 따라서 직접 round 함수를 정의해줘야 한다.
- 사사오입 : 4 미만의 숫자는 내리고 5 이상의 숫자는 올리는 방법
- 오사오입 : 5 미만의 숫자는 내림, 5 초과의 숫자는 올림하고, 반올림할 자릿수가 5일 때는 앞자리가 홀수이면 올림, 짝수이면 내림하는 방법
이 문제 자체가 특이한 문제인 것 같다. 이런 게 있다 정도만 알고 넘어가면 좋겠다.
'백준' 카테고리의 다른 글
[백준] 1012번 파이썬 (유기농 배추) (0) | 2024.02.29 |
---|---|
[백준] 18111번 파이썬 (마인크래프트) (0) | 2024.02.25 |
[백준] 10989번 파이썬 (수 정렬하기 3) (0) | 2024.02.24 |
[백준] 4949번 파이썬 (균형잡힌 세상) (0) | 2024.02.23 |
[백준] 2231번 파이썬 (분해합) (0) | 2024.02.23 |