Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

정리정리정리

[알고리즘] 대표값 본문

코테

[알고리즘] 대표값

코딩마스터! 2021. 9. 3. 03:16

N명의 학생의 수학점수가 주어집니다. N명의 학생들의 평균(소수 첫째자리 반올림)을 구하고,

N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하세

요.

평균과 가장 가까운 점수가 여러 개일 경우 먼저 점수가 높은 학생의 번호를 답으로 하고, 높

은 점수를 가진 학생이 여러 명일 경우 그 중 학생번호가 빠른 학생의 번호를 답으로 합니다.

입력설명

첫줄에 자연수 N(5<=N<=100)이 주어지고, 두 번째 줄에는 각 학생의 수학점수인 N개의 자연

수가 주어집니다. 학생의 번호는 앞에서부터 1로 시작해서 N까지이다.

출력설명

첫줄에 평균과 평균에 가장 가까운 학생의 번호를 출력한다.

평균은 소수 첫째 자리에서 반올림합니다.

입력예제 1

10

45 73 66 87 92 67 75 79 75 80

출력예제 1

75 7

 

  • abs() 거리를 구하는(절댓값) 함수를 처음 알았다. 
  • enumerate해서 접근하면 어차피 처음부터 하나씩 접근하니까 절대값이 같고 값이 큰 값이 아닌(값이 같지만 순서가 느린) 값을 선택하지 않는다. 처음부터 인덱스가 하니씩 들어가기 때문에
n = int(inpu())

score_list = list(map(int,input().split())
avg = round(sum(score_list)/len(score_list))
min = 9999

for index, value in enumerate(score_list):
	tmp = abs(avg-value)
    
    if tmp<min:
    	min = tmp
        score = value
        res = index+1
    
    elif tmp==min:
    	if score<value:
        	score = value
            res = index+