두 배열을 병합하는 일련의 과정을 담아낸 문제이다.
쉬운 풀이가 가능하기에 추가적인 설명은 생략해도 좋을 것 같다.
/**
Do not return anything, modify nums1 in-place instead.
*/
function merge(nums1: number[], m: number, nums2: number[], n: number): void {
// 요소의 끝 인덱스
let curIndex = m + n - 1
// 각 nums의 끝 인덱스
let p1 = m - 1;
let p2 = n - 1
// 순회
while(p2 >= 0) {
if(p1 >= 0 && nums1[p1] > nums2[p2]) {
nums1[curIndex] = nums1[p1]
p1--
} else {
nums1[curIndex] = nums2[p2]
p2--
}
curIndex--
}
}