본문 바로가기

Algorithm/Python

004 - 대표값

N명의 학생의 수학점수가 주어집니다. N명의 학생들의 평균(소수 첫째자리 반올림)을 구하고, N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하세 요.
평균과 가장 가까운 점수가 여러 개일 경우 먼저 점수가 높은 학생의 번호를 답으로 하고, 높 은 점수를 가진 학생이 여러 명일 경우 그 중 학생번호가 빠른 학생의 번호를 답으로 합니다.

입력설명
첫줄에 자연수 N(5<=N<=100)이 주어지고, 두 번째 줄에는 각 학생의 수학점수인 N개의 자연 수가 주어집니다. 학생의 번호는 앞에서부터 1로 시작해서 N까지이다.

 

출력설명
첫줄에 평균과 평균에 가장 가까운 학생의 번호를 출력한다. 평균은 소수 첫째 자리에서 반올림합니다.

입력예제 1

10

45 73 66 87 92 67 75 79 75 80

 

출력예제 1 

74 7

 

import sys
sys.stdin = open('in4.txt', 'rt')
n = int(input())
a = list(map(int, input().split()))
arrAvg = (round(sum(a)/n)) 
# 파이썬에서는 round 함수는 round half even 방식이므로, int(a+0.5) 로 처리할 것.

arrMin = a[0]
score = 0
idx = 0

for i in range(1, n):
    tmp = abs(arrAvg-a[i])
    if tmp < arrMin:
        arrMin = tmp
        score = a[i]
        idx = i+1
    elif tmp == arrMin:
        print(i, arrAvg, idx, a[i], tmp, arrMin, score)
        if score < a[i]:
            score = a[i]
            idx = i+1
print(arrAvg, idx)

'Algorithm > Python' 카테고리의 다른 글

006 - 자릿수의 합  (0) 2023.08.02
005 - 정다면체  (0) 2023.07.27
003 - K번째 큰 수  (0) 2023.07.26
002 - K번째 수  (0) 2023.07.25
001 - K번째 약수  (0) 2023.07.19