numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다.
입출력 예 #1
2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)
3 = 2 + 1 입니다.
4 = 1 + 3 입니다.
5 = 1 + 4 = 2 + 3 입니다.
6 = 2 + 4 입니다.
7 = 3 + 4 입니다.
따라서 [2,3,4,5,6,7] 을 return 해야 합니다.
입출력 예 #2
2 = 0 + 2 입니다.
5 = 5 + 0 입니다.
7 = 0 + 7 = 5 + 2 입니다.
9 = 2 + 7 입니다.
12 = 5 + 7 입니다.
따라서 [2,5,7,9,12] 를 return 해야 합니다.
function solution(numbers) {
  let result = [];
  for (let i = 0; i < numbers.length; i++) {
    // i로 numbers 배열 순회
    for (let j = i + 1; j < numbers.length; j++) {
      // j는 i의 다음값부터 순회
      result.push(numbers[i] + numbers[j]);
    }
  }
  return [...new Set(result)].sort((a, b) => a - b);
}
i로 numbers 배열을 순회한다.j는 i의 다음값부터 순회해서 result에 두 요소의 더한값을 push한다.new Set으로 중복을 없애주고, sort로 오름차순 정렬해준 값을 return한다.function solution(numbers) {
    var answer = [];
    numbers.forEach((v) => {
        const num1 = numbers.slice();
        let a = num1.indexOf(v);
        num1.splice(a, 1);
        num1.forEach((z) => {
            let num2 = v + z;
            if (!answer.includes(num2)) {
                answer.push(num2);
            }
        });
    });
    return answer.sort((a, b) => a - b);
}
forEach로 numbers배열 순회slice()로 numbers배열 얕은복사indexOf(v)로 현재 순회 중인 원소 v의 인덱스를 찾는다.num1.splice(a, 1)로 복사한 배열 num1에서 현재 원소 v를 제거한다. 다른 원소들과 조합을 만들기 위해 현재 원소를 제거answer를 오름차순으로 return
set을 사용해서 중복을 아주 간단히 제거해주었다.