홍우진의 개발 일기장
[백준] 18110번: solved.ac / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/18110
풀이 코드
import sys
input = sys.stdin.readline
def round(x):
if x - int(x) >= 0.5: #소수점이 0.5 이상일 때 반올림해서 리턴
return int(x) + 1
else:
return int(x) #이하라면 그냥 리턴
n = int(input())
num = round(n*0.15) #절사평균 계산 시 제외할 값의 수
level = [int(input()) for _ in range(n) ] #리스트 컴프리헨션 후 정렬
level.sort()
if n: #n이 참이라면
if num: #num이 참이라면
print(round(sum(level[num : -num]) / len(level[num : -num]))) # 리스트 앞 뒤로 전체 길이의 15%를 반올림한 값을 제외함, 리스트의 평균 반올림하여 출력
else:
print(round(sum(level)/len(level)))
else:
print(0)
코드 해석
평균을 구할 때 round() 라는 파이썬 내장 함수가 있지만
그 함수를 사용하면 런타임에러가 나타난다.
런타임에러를 방지하기 위하여 sys.stdin.readline을 사용하고
평균을 구하는 함수를 직접 만든다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1966번: 프린터 큐 / 파이썬 (0) | 2024.12.07 |
---|---|
[백준] 1929번: 소수 구하기 / 파이썬 (0) | 2024.12.06 |
[백준] 28702번: FizzBuzz / 파이썬 (0) | 2024.12.04 |
[백준] 11050번: 이항 계수 1 / 파이썬 (2) | 2024.12.03 |
[백준] 10989번: 수 정렬하기 3 / 파이썬 (0) | 2024.12.02 |
Comments