가자미의 개발이야기
[알고리즘] 대표값 구하기 본문
#문제:
▣ 입력설명 첫줄에 자연수 N(5<=N<=100)이 주어지고, 두 번째 줄에는 각 학생의 수학점수인 N개의 자연 수가 주어집니다. 학생의 번호는 앞에서부터 1로 시작해서 N까지이다.
▣ 출력설명 첫줄에 평균과 평균에 가장 가까운 학생의 번호를 출력한다. 평균은 소수 첫째 자리에서 반올림합니다.
▣ 입력예제 1
10
45 73 66 87 92 67 75 79 75 80
▣ 출력예제 1
74 7
예제설명) 평균이 74점으로 평균과 가장 가까운 점수는 73(2번), 75(7번), 75(9번)입니다. 여기서 점수가 높은 75(7번), 75(9번)이 답이 될 수 있고, 75점이 두명이므로 학생번호가 빠른 7번이 답이 됩니다.
import sys
#sys.stdin=open("input.txt", "rt")
N=int(input())
lst=list(map(int,input().split()))
lst2=[]
sum=0
for i in lst:
sum=sum+i
sum=int(round(sum/N,0))
for i in range(0,N):
if lst[i]-sum>0:
tmpt=lst[i]-sum
else:
tmpt=sum-lst[i]
lst2.append(tmpt)
min=0
for i in range(0,N):
if lst2[min]>lst2[i]:
min=i
elif lst2[min]==lst2[i]:
if lst[min]>=lst[i]: min=min
elif lst[min]<lst[i]: min=i
else:
continue
print("{} {}".format(sum, min+1))
#몰랐거나 검색했던 내용들
1. 파이썬에서 소수 여부 판별하기
if a%1==0 이 true이면 소수가 아님.
2. 반올림하기
round(2.5, 1) 이럴 경우 2.5를 소수점 첫번째 자리에서 반올림 진행.
'Computer Science > 알고리즘' 카테고리의 다른 글
[알고리즘] 자릿수의 합 (0) | 2021.05.18 |
---|---|
[알고리즘] 두 개의 정다면체 주사위 (0) | 2021.05.18 |
[알고리즘] K번째 큰 수 (0) | 2021.05.16 |
[알고리즘] 약수 k번째 약수 구하기 (0) | 2021.05.11 |
[알고리즘] 약수 k번째 약수 구하기 (0) | 2021.05.09 |