<Easy> Merge Sorted Array (LeetCode : C#)

이도희·2023년 4월 6일
0

알고리즘 문제 풀이

목록 보기
48/185

https://leetcode.com/problems/merge-sorted-array/

📕 문제 설명

non-decreasing 순서로 정렬된 두 정수 배열이 주어질 때 non-decreasing 순서로 정렬되도록 병합한 결과 반환

(결과는 nums1 배열에 저장 (반환이 아님) -> nums1 은 m+n 길이 가짐)

  • Input
    두 정수 배열 nums1, nums2, 각 정수 배열의 개수 m, n
  • Output
    각 정수배열에서 개수대로 뽑은 후 non-decreasing 순서로 정렬하여 병합한 결과 nums1에 저장

예제

풀이

문제가 의도한 방식은 아니라 생각되지만.. 가장 간단한 방식

  1. nums1을 0을 제외한 부분 담은 배열 만들기
  2. nums1과 nums2 합친 배열 만들고 정렬
  3. nums1에 정렬된 배열 값 넣기
public class Solution {
    public void Merge(int[] nums1, int m, int[] nums2, int n) {

        if (n == 0) return;
        if (m == 0)
        {
            for (int i = 0; i < n; i++)
            {
                nums1[i] = nums2[i];
            }
            return;
        }

        int[] truncatedNum1 = new int[m];

        for (int i = 0; i < m; i++)
        {
            truncatedNum1[i] = nums1[i];
        }

        int[] mergedNums = truncatedNum1.Concat(nums2).ToArray();
        Array.Sort(mergedNums);

        for(int i = 0; i < m + n; i++)
        {
            nums1[i] = mergedNums[i];
        }
        
    }
}

결과

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글