문제
N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하기
조건
평균과 가장 가까운 점수가 여러 개일 경우 먼저 점수가 높은 학생의 번호를 답으로 하고,
높은 점수를 가진 학생이 여러 명일 경우 그 중 학생번호가 빠른 학생의 번호를 답으로 합니다.
제한사항
첫줄에 자연수 N(5<=N<=100)이 주어지고, 두 번째 줄에는 각 학생의 수학점수인 N개의 자연수가 주어집니다.
학생의 번호는 앞에서부터 1로 시작해서 N까지이다.
첫줄에 평균과 평균에 가장 가까운 학생의 번호를 출력한다. 평균은 소수 첫째 자리에서 반올림합니다.
문제풀이
N = int(input())
a = list(map(int, input().split()))
avg = round(sum(a)/ N)
min = 2147000000
for idx, x in enumerate(a):
tmp=abs(x-avg)
if tmp < min:
min=tmp
score=x
res=idx+1
elif tmp == min:
if x > score:
score=x
res=idx+1
print(avg, res)'파이썬 알고리즘 풀이' 카테고리의 다른 글
| 6) 자릿수의 합 (0) | 2021.10.19 |
|---|---|
| 5) 정다면체 (0) | 2021.10.19 |
| 3) K번째 큰 수 (0) | 2021.10.19 |
| 2) K번째 수 (0) | 2021.10.19 |
| 1) K번째 약수 (0) | 2021.10.18 |