[Python] 코딩 도장 - 중앙값 구하기
Updated:
코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.
코딩 도장에서 여러 문제를 확인할 수 있습니다.
난이도 순으로 차근차근 풀어보려 합니다.
[문제: 중앙값 구하기] - Lv.1
리스트에 있는 숫자들의 중앙값을 구하는 프로그램을 만들어라.
[7, 9, 14] = 9
[24, 31, 35, 49] = 33
[17, 37, 37, 47, 57] = 37
중앙값 : 자료를 작은 값에서부터 크기순으로 나열할 때 중앙에 위치한 값
① 자료의 개수가 홀수이면 가운데 위치한 값이 중앙값이다.
② 자료의 개수가 짝수이면 가운데 위치한 두 값의 평균이 중앙값이다.
출처: https://codingdojang.com/scode/611?answer_mode=hide
[풀이]
def median_lst(x):
x2 = sorted(x)
cen_idx = int(len(x2)/2)
if len(x2) % 2 == 0:
return (x2[cen_idx-1] + x2[cen_idx]) / 2
else:
return x2[cen_idx]
x = [17, 37, 37, 47, 57]
median_lst(x)
37
사실 numpy
패키지에서 np.median()
을 사용하면 더 편한데 패키지 없이 작성해보았다.
리스트 정렬 후 길이가 짝수인 경우와 홀수인 경우를 분리해서 계산식을 입력하였다.
[추천 풀이]
import statistics
test =[[7,9,14],[24, 31, 35, 49],[17,37,37,47,57]]
for i in range(len(test)):
print(test[i],'=',statistics.median(test[i]))
[7, 9, 14] = 9
[24, 31, 35, 49] = 33.0
[17, 37, 37, 47, 57] = 37
이 분은 패키지를 이용해서 간단하게 푸셨다.
Leave a comment