코딩테스트

4. Median of Two Sorted Arrays

nayoon 2024. 9. 1. 18:19

문제

 

 

1. 이미 정렬되어있는 두 개의 배열 nums1, nums2가 주어졌기 때문에 요소를 각각 비교하며 하나로 합친다.

2. 홀수의 경우 중앙에 있는 수, 짝수의 경우 중앙에 있는 두 개의 수를 2로 나눈 수를 반환한다.

 

class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int size = nums1.length + nums2.length;
        int[] nums = new int[size];
        
        int index1 = 0;
        int index2 = 0;
        for(int i = 0; i < size; i++) {
            if (index1 < nums1.length && index2 < nums2.length) {
                if (nums1[index1] <= nums2[index2]) {
                    nums[i] = nums1[index1++];
                } else {
                    nums[i] = nums2[index2++];
                }
            } else if (index1 < nums1.length) {
                nums[i] = nums1[index1++];
            } else {
                nums[i] = nums2[index2++];
            }
        }

        if (size % 2 == 1) {
            return nums[size / 2];
        } 
        return (nums[size / 2 - 1] + nums[size / 2]) / 2.0;
    }
}