1 분 소요

대표값

문제 정리

입력

15 // n
12 34 17 6 11 15 27 42 39 31 25 36 35 25 17 // n개의 수

처리 과정

  1. 리스트의 평균 구하기
  2. 평균으로부터 가장 가까운 거리의 학생 번호 출력
  3. 평균가 가까운 거리인 학생이 여러명이라면, 더 높은 점수인 학생 번호 출력
  4. 높은 점수인 학생이 여러명이라면, 낮은 학생 번호 출력

    예제 설명
    평균이 74점으로 평균과 가장 가까운 점수는 73(2번), 75(7번), 75(9번)입니다.
    여기서 점수가 높은 75(7번), 75(9번)이 답이 될 수 있고, 75점이 두명이므로 학생번호가 빠른 7번이 답이 됩니다.

출력

25 11

풀이

import sys
sys.stdin = open("./input/in4.txt", "rt")

n = int(input())
lst = list(map(int, input().split()))

# 반올림에 round를 사용하지 않고 0.5를 더해서 int로 형변환
# python의 round는 round_half_even 방식을 택하기 때문
avg = int((sum(lst)/n) + 0.5)

min = 2147000000 # 가장 큰 정수값

# enumerate - idx에는 인덱스, val에는 값을 쌍으로 할당
for idx, val in enumerate(lst):
    tmp = abs(val - avg) # tmp는 두 수 사이 거리 
    if tmp < min:
        min = tmp
        score = val
        stdNum = idx + 1 # 0번 인덱스 학생의 실제 번호는 1번
    elif tmp == min:
        if val > score:
            score = val
            stdNum = idx + 1

print(avg, stdNum)

정리

  • num을 반올림: num = int(num+0.5)
  • 리스트 요소 합: sum()
  • for문에서 인덱스와 값을 쌍으로 할당: enumerate()
  • 절댓값: abs()


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: