개발/코딩 테스트 대비

[LeetCode] 4. Median of Two Sorted Arrays

codesparkling 2025. 1. 11. 23:31

4. Median of Two Sorted Arrays

링크

풀이

중앙값인 median을 구하는 문제이다.
nums1, nums2 라는 정렬된 배열 2개가 주어지고 두 배열을 합쳐서 중앙값을 구해야 한다.

크게 어렵지는 않지만 중앙값이라는 개념이 헷갈릴 수도 있다고 생각한다.
우리가 아는 산술평균(mean)을 구하는 문제가 아니다. (수의 합 / 수의 개수)

중앙값은 숫자 개수가 홀수면 배열의 가장 중앙에 있는 값을 반환하고,
짝수라면 (중앙에 있는 2개 숫자의 합 / 2)를 반환해야 한다.

이제 개념을 알았으니 코드로 옮기기만 하면 끝이다.
spread 연산을 통해서 배열을 합쳐주고 sort()를 호출해서 정렬한다.
그리고 숫자 개수가 홀수인지 짝수인지만 판별해주면 끝이다.

코드

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function(nums1, nums2) {
    const nums = [...nums1, ...nums2].sort((a,b) => a - b);

    if(nums.length%2 === 1) {
        return nums[Math.floor(nums.length/2)];
    }

    return (nums[nums.length/2 - 1] + nums[nums.length/2]) / 2;
};