[アルゴリズム]3.連結配列


📌に答える


昇順配列の配列が2つある場合は、プログラムを作成し、2つの配列を昇順に結合して出力します.

📌I/O例

  • アレイ長:3
    1 3 5
  • アレイ長:5
    2 3 6 7 9
  • 🔑KEY
    sort()関数ではなく、デュアルポインタアルゴリズムを使用します.
  • デュアルポインタ(デュアルポート)
    2つのポインタを操作することによって所望の結果を得るアルゴリズム.
    始点と終点を最初の要素のインデックスに指定します.
    現在の部分とMが等しい場合は、ポインタのインデックスを追加します.
  • 📌に答える


    🎨最初の解
    //두 배열 합치기
    function solution(arr1 , arr2){
        let answer = [];
        n = arr1.length;
        m = arr2.length;
        let p1=p2=0;        //포인터 정의
    
        while(p1 < n && p2 < m){
            console.log(arr1[p1])
            console.log(arr2[p2])
            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));