문제출처
어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 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)