정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
numbers | result |
---|---|
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
const solution = (numbers) => {
let result = [];
for(let i = 0; i < numbers.length-1; i ++){
for(let j = i + 1; j < numbers.length; j++){
result.push(numbers[i]+numbers[j]);
};
};
return [...new Set(result)].sort((a, b) => a - b);
};
result
선언for
문으로 numbers 배열을 순회하면서 두 숫자의 합을 구해 result
에 push
i
는 기준이 되는 숫자j
는 i
의 다음 숫자 !new Set
으로 중복 값을 없애주고 sort
로 정렬하여 반환🪴
new Set()
spread 연산자
Array.sort()
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);
}
answer
선언num1
로 원본 배열 얕은 복사indexOf(v)
와 splice(a,1)
로 배열 num1
에서 해당하는 숫자 제거a
의 합을 계산하고 includes
로 중복 값이 없을 경우에만 answer
에 추가sort
로 정렬하여 반환🪴
Array.forEach()
Array.indexOf()
Array.splice(a, b)
Array.includes()
Array.sort()