정리정리정리
[알고리즘] 대표값 본문
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+
'코테' 카테고리의 다른 글
[탐색, 시뮬레이션] 카드 역배치 (0) | 2021.09.08 |
---|---|
[탐색, 시뮬레이션] 숫자만 추출 (0) | 2021.09.08 |
[프로그래머스] 위장 (0) | 2021.09.01 |
[프로그래머스] 체육복 (0) | 2021.09.01 |
[프로그래머스] SQL 입양 시각 구하기(2) (0) | 2021.09.01 |