대표값
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!
문제풀이
import sys
n = int(in put())
a = list(map(int, input ().split()))
# 점수 평균
ave = round(sum(a)) / n
min = 2147000000
for idx, x in enumerate(a):
tmp = abs(x - ave)
if (tmp < min):
min = tmp
score = x
res = idx + 1
elif (tmp == min):
if (x > score):
score = x
res = idx + 1
추가
python의 round 함수는 round_half_even 방식을 따른다.
정확하게 소수점 중간일 때,
- (ex: 1.500) 소수점 부분이 짝수쪽으로 간다해서 2가 되어 버리는 것을 말한다.
- (ex: 2.500) 이면 2가 되어 버린다. 오잉또잉
그래서 round()함수를 사용하면 안된다.
a = a + 0.5
a = int(a)
print(a)
0.5를더하고 소수를 버리는 방법으로 한다.