
정수 배열 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 에 pushi 는 기준이 되는 숫자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()