hi jaeneee

BOJ_18110_solved.ac_python 본문

알고리즘/baekjoon

BOJ_18110_solved.ac_python

ash silver 2023. 7. 13. 14:39

https://www.acmicpc.net/problem/18110

 

18110번: solved.ac

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

www.acmicpc.net

1) 문제

2) 예시

3) 제출

import sys
input = sys.stdin.readline

n = int(input())
difficulty = []
for i in range(0, n):
    a = int(input())
    difficulty.append(a)
difficulty.sort()

exceptNum = round(n * 0.15 + 0.000000001)

if n == 0:
    result = 0
elif exceptNum == 0:
    result = round(sum(difficulty)/len(difficulty) + 0.000000001)
else:
    tmpSum = sum(difficulty[exceptNum:-exceptNum])
    tmpPeople = (len(difficulty[exceptNum:-exceptNum]))
    result = round(tmpSum/tmpPeople + 0.000000001)
print(result)

4) 메모리/시간/코드 길이

5) PLUS

첫 번째 틀린 이유  : n이 0일 경우를 생각하지 않음

-> n이 0일 경우엔 0을 출력할 수 있도록 함

두 번째 틀린 이유  : 파이썬 round 함수의 특징인 오사오입을 생각하지 않음

-> round 함수의 사사오입과 오사오입을 이해하고 코드에 영향을 미치지 않는 0.000000001 을 더해 원하는 반올림을 할 수 있도록 함

세 번째 틀린 이유  : li[0:-0]일 경우에는 li가 []이 된다는 것을 몰랐음

-> exceptNum(제외할 인원 수)가 0인 경우에는 전체 리스트를 계산해주도록 함

Comments