문제출처

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.

평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면

10 30 30 40 60

이 되고 따라서 중앙값은 30이 된다.

다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.

풀이코드

numbers = [int(input()) for i in range(5)]
avg = int(sum(numbers) / len(numbers))
print(int(avg))
# 오름차순 정렬
numbers.sort()
# 길이 대비 중앙값 구하기
median = int(len(numbers) // 2)
print(numbers[median])

코드설명

1. input()을 5번 호출하여 numbers 리스트에 숫자를 추가

2. sum / 길이로 하여 평균값 추출

3. 오름차순으로 리스트 정렬

4. 길이 대비 2로 하여 정수 나눗셈을 통해 중앙값 추출

 


더보기

초반 코드 (ValueError) 

1. 만약 입력이 5개가 아닌 경우, ValueError가 일어날 수 있음

2. 여러 요소를 추가할때는 extend / 한 가지 요소를 추가할때는 append

 

a, b, c, d, e = map(int, input().split())
bin = []
bin.extend([a, b, c, d, e])

temp = 0
for i in bin:
    temp += i

# 오름차순 정렬
bin.sort()

# 평균 계산
avg = int(temp / len(bin))
print(avg)

# 중앙값 구하기
median = int(bin[len(bin) // 2])
print(median)

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기