배열 요소의 중앙값과 절대 중간값 구하기

배열(Array)은 프로그래밍에서 종종 사용되는 자료 구조입니다. 이번 글에서는 주어진 배열의 중앙값과 절대 중간값을 구하는 방법에 대해 알아보겠습니다.

중앙값(Median) 찾기

중앙값은 배열의 요소들을 오름차순으로 정렬했을 때, 가장 중앙에 위치한 값입니다. 주어진 배열이 짝수일 경우 중앙의 두 값의 평균을 구합니다.

def find_median(arr):
    sorted_arr = sorted(arr)
    n = len(sorted_arr)
    
    if n % 2 == 0:
        mid1 = sorted_arr[n // 2]
        mid2 = sorted_arr[n // 2 - 1]
        median = (mid1 + mid2) / 2
    else:
        median = sorted_arr[n // 2]
    
    return median

위의 코드에서 find_median 함수는 입력으로 배열을 받아 중앙값을 계산하여 반환합니다. 먼저 배열을 오름차순으로 정렬한 후, 배열의 길이에 따라 중앙값을 계산합니다. 배열의 길이가 짝수일 경우에는 중앙의 두 값을 평균내고, 홀수일 경우에는 중앙값을 그대로 반환합니다.

절대 중간값(Absolute Median) 찾기

절대 중간값은 배열의 요소들을 오름차순으로 정렬했을 때, 중앙에 위치한 값과 가까운 값을 의미합니다. 중앙값과 절대 중간값은 일치할 수도, 다를 수도 있습니다.

def find_absolute_median(arr, target):
    sorted_arr = sorted(arr)
    n = len(sorted_arr)
    min_diff = float('inf')
    absolute_median = None
    
    for num in sorted_arr:
        diff = abs(num - target)
        if diff < min_diff:
            min_diff = diff
            absolute_median = num
    
    return absolute_median

위의 코드에서 find_absolute_median 함수는 입력으로 배열과 타겟값을 받아 절대 중간값을 계산하여 반환합니다. 배열을 오름차순으로 정렬한 후, 각 요소와 타겟값과의 차이를 계산합니다. 차이가 최소인 값을 절대 중간값으로 선택합니다.

예제 실행

# Example 1
arr1 = [1, 4, 7, 10, 15]
target1 = 8
median1 = find_median(arr1)
absolute_median1 = find_absolute_median(arr1, target1)
print("Median:", median1)
print("Absolute Median:", absolute_median1)

# Example 2
arr2 = [-5, -2, 0, 4, 8]
target2 = -3
median2 = find_median(arr2)
absolute_median2 = find_absolute_median(arr2, target2)
print("Median:", median2)
print("Absolute Median:", absolute_median2)

위의 예제 코드는 find_medianfind_absolute_median 함수를 사용하여 중앙값과 절대 중간값을 구하는 예제입니다. 각각의 함수를 호출한 후 결과를 출력합니다.

References

#hashtags #배열 #중앙값