두 배열 합치기 (투 포인터)

bkboy·2022년 5월 18일
0

문제

오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램
을 작성하세요.

제한사항

입출력 예

풀이

function solution(arr1, arr2) {
  let answer = [];
  let n = arr1.length;
  let m = arr2.length;
  let p1 = (p2 = 0);
  while (p1 < n && p2 < m) {
    if (arr1[p1] <= arr2[p2]) {
      answer.push(arr1[p1++]);
    } else {
      answer.push(arr2[p2++]);
    }
  }
  while (p1 < n) answer.push(arr1[p1++]);
  while (p2 < m) answer.push(arr2[p2++]);
  return answer;
}

let a = [1, 3, 5];
let b = [2, 3, 6, 7, 9];
console.log(solution(a, b));
  • 투포인터 알고리즘
  • 두 개의 포인터 변수를 이용해 각각의 배열을 순회하게 한다.
  • 구조분해를 이용해 배열을 합치고 sort하는 방식도 있다.
profile
음악하는 개발자

0개의 댓글