▷ EPPER은 이화여자대학교 소프트웨어학부 졸업시험인 코딩테스트 이름입니다.
EPPER 11회 7번 단순 계산기
문제 설명
- 처음에 두 점수를 목록에서 선택해, 두 점수의 평균 m을 구한다. (선택한 두 점수는 목록에서 제거)
- 목록에 남아 있는 점수 중 하나를 선택해 앞서 구한 평균 m과의 평균을 구한다.
- 목록에 남은 점수가 없을 때까지 2. 반복
목록에서 점수를 선택하는 순서에 따라 평균이 달라진다. n개의 점수가 주어졌을 때 가장 큰 평균값을 구하는 프로그램을 작성하시오.
형식
- 첫째 줄에 n을 입력한다 (1<=n<=20)
- n개의 줄에 걸쳐 점수 x를 입력한다 (1<=x<=5)
- 가장 큰 평균값을 출력한다. (소수 이하 6째 자리까지 출력)
풀이과정
가장 큰 평균값을 구하기 위해서 점수들이 들어있는 리스트 num_arr를 오름차순으로 정렬하면 된다.
코드
def solution(num_arr, n):
sol = 0
num_arr.sort()
if n==1:
return num_arr.pop(0)
a, b = num_arr.pop(0), num_arr.pop(0)
sol = (a+b)/2.0
while num_arr:
num = num_arr.pop(0)
sol = (sol+num)/2.0
return sol
n = int(raw_input())
num_arr = []
for i in range(n):
num_arr.append(int(raw_input()))
print("{:.6f}".format(solution(num_arr, n)))
'Algorithm > EPPER' 카테고리의 다른 글
[EPPER] 15회 5번 문자열 압축 (0) | 2021.03.05 |
---|