이번 문제의 핵심은 결국 배열안의 모든 두 수의 합의 경우의 수를 구하고 중복값을 제거하는 것이다.
모든 두 수의 합 경우의 수는 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])