[アルゴリズム]プログラマ-2つを抽出して追加


https://programmers.co.kr/learn/courses/30/lessons/68644
問題の説明
整数配列番号.
numbersから異なるインデックスの2つの数を抽出し、作成できるすべての数を昇順に配列に入れ、solution関数の戻りを完了してください.
I/O例

解答方法
  • に入力デジタル配列では、常に2つの値を選択する必要があるため、組合せを求める方法で解く:
  • の結果値の結果は同じ値を含むことができないので、集合として
  • を実施する.
  • の最終結果値は昇順でソートする配列を返さなければならないため、展開構文を使用して集合を配列に設定し、ソート後の値
  • を返す.
    function solution(numbers) {
        const result = new Set();
        
        combination(0,0,0);
        function combination(n, cnt, sum){
            if(cnt === 2){
                result.add(sum);
                return;
            }
            
            for(let i = n; i < numbers.length; i++){
                combination(i+1, cnt+1, sum+numbers[i]);
            }
        
        }
        
        return [...result].sort((a,b )=>a-b);
    }