プログラマ-level 1(2つ抽出して番号を付ける)


質問する



問題を解く


今回の問題の核心は,最終的にアレイ内のすべての2つの数の合意数を求め,繰返し値を除去することである.
すべての2つの数の和の数字は2つのfor文で解決され、重複値除去はindexOfを使用します.
function solution(numbers) {
  let newArr = [];
  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      //2중 for문으로 배열 안의 두 수의 합의 모든 경우의 수를 구한다.
      if (newArr.indexOf(numbers[i] + numbers[j]) === -1) {
        //indexOf를 이용하여 두 수의 합이 기존의 값에 없는 경우만 push한다.
        newArr.push(numbers[i] + numbers[j]);
      }
    }
  }
  return newArr.sort((a, b) => a - b);
}

solution([5, 0, 2, 7])