본문 바로가기
코딩테스트/코딩테스트 문제

코딩테스트: LeetCode - 4. Median of Two Sorted Arrays (자바스크립트 풀이)

by 공부가싫다가도좋아 2022. 7. 14.
반응형

포스팅 요약

1. 문제

2. 문제 해석

3. 코드 


1. 문제

LeetCode문제 풀러가기

https://leetcode.com/problems/median-of-two-sorted-arrays/

 

Median of Two Sorted Arrays - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제

Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

The overall run time complexity should be O(log (m+n)).

Example 1:

Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.

Example 2:

Input: nums1 = [1,2], nums2 = [3,4]
Output: 2.50000
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.

2. 문제 해석

nums1과 nums2 배열을 합치고, 정렬하여 새 배열을 만든다. 새 배열의 중간값을 구한다.

예1)

입력: nums1 = [1,3] , nums2 = [2]

출력: 2.00000

설명: nums1과num2를  합치고 정렬하면 [1,2,3] 배열이 만들어진다. [1,2,3]의 중간값은 2다.

 

예2)

입력: nums1 = [1,3] , nums2 = [2,4]

출력: 2.50000

설명: nums1과num2를  합치고 정렬하면 [1,2,3,4] 배열이 만들어진다. [1,2,3,4]의 중간값은 (2+3)/2=2.5다.


3. 코드 

var findMedianSortedArrays = function(nums1, nums2) {
    const nums = nums1.concat(nums2).sort((a,b)=>a-b) //nums1과2를 concat으로 합치고 sort로 정렬한다.

    return nums.length%2===0?(nums[(nums.length/2)-1]+nums[nums.length/2])/2:nums[Math.floor(nums.length/2)]
};
// 새로운 배열 nums의 길이가 짝수면 중간 두 숫자를 더한뒤 2로 나누어준다.
// 새로운 배열 nums의 길이가 홀수면 중간 숫자 하나만 출력한다.

 


위에 작성된 코드보다 더 효율성좋은 풀이는 많습니다 :) 

아마 제가 작성한 코드는 다른 초보자분들도 접근하기 쉬운 방법이라고 생각합니다.

반응형

댓글