DOTY

4) LeetCode - Merge Sorted Array 본문

Algorithm/Data Structure

4) LeetCode - Merge Sorted Array

증식세포 2024. 5. 29. 12:15
728x90
반응형

Merge Sorted Array - LeetCode


처음 사용해 보는 사이트로 프로그래머스처럼 내가 Input을 넣지 않아 줘도 좋다.

그리고 Follow Up 이라는 추가 도전?이라는 것도 있는데 문제를 다 풀어도 더 생각하게 한다.

 

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int i = 0, j = 0;
        vector<int> answer;
        while(i < m && j < n)
        {
            if(nums1[i] <= nums2[j])
            {
                answer.push_back(nums1[i]);
                i++;
            }
            else
            {
                answer.push_back(nums2[j]);
                j++;
            }
        }

        while(i < m)
        {
            answer.push_back(nums1[i]);
            i++;
        }
        while(j < n)
        {
            answer.push_back(nums2[j]);
            j++;
        }

        nums1 = answer;
    }
};

원래 내가 생각했던 코드.

어이쿠야....

지금까지 제출한 사람들의 런타임과 메모리를 비교할 수 있다.

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int fullarr = m+n-1;
        m--;
        n--;
        
        while(m >= 0 && n >= 0)
        {
            if(nums1[m] >= nums2[n])
            {
                nums1[fullarr] = nums1[m];
                m--;
            }
            else
            {
                nums1[fullarr] = nums2[n];
                n--;
            }
            fullarr--;
        }
        while(m >= 0)
        {
            nums1[fullarr] = nums1[m];
            m--;
            fullarr--;
        }
        while(n >= 0)
        {
            nums1[fullarr] = nums2[n];
            n--;
            fullarr--;
        }
    }
};

코드를 좀 개선시키고 다시 실행을 했다.

 

릿코드는 틀렸을 경우 어떤 테케에서 틀렸는지 보여준다.

하지만 코테에서는 어떤 테케가 틀렸는지 보여주지 않는다.

이 부분에 대해서는 단점이 될 수 있을 것 같다.

728x90
반응형
Comments