포인터에 대한 개념을 확실하게 이해하지 못했다.
반복문을 사용할 때 주로 하나의 변수를 사용하여 index 를 변화시키곤 하였다.
그리고 대부분 index 가 0 부터 시작하는 것으로 주로 작성을 하여
뒤에서 부터 index 를 변화시키는 반복문 안에 각각의 배열의 index 를 가리키는 두개의 포인터를 생성할 생각을 하지 못했다.
var merge = function(nums1, m, nums2, n) {
// 첫번째 배열에 숫자가 있는 마지막 index
let first = m-1;
// 두번째 배열에 숫자가 있는 마지막 index
let second = n-1;
// nums1 길이만큼 반복
// nums1 가장 마지막 index 부터 0 까지
for(let i = m+n-1; i>=0; i--)
{
// 두번째 배열의 index 가 0보다 작아지면 break;
if(second<0)
{
break;
}
// 첫번째 배열에서 가장 큰 숫자가 두번째 배열에서 가장 큰 숫자 보다 크면
// nums1 끝자리에 집어넣고 숫자를 가리키는 index --
if(nums1[first]>nums2[second])
{
nums1[i] = nums1[first]
first--;
}
// 두번째 배열에서 가장 큰 숫자가 첫번째 배열에서 가장 큰 숫자 보다 크면
// nums1 끝자리에 집어넣고 숫자를 가리키는 index --
else {
nums1[i] = nums2[second]
second--;
}
}
};