정수 배열 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 ] |
function solution(numbers) {
var answer = [];
return answer;
}
오름차순 - sort()
예시 문제
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return a - b;
});
document.writeln(arr + '<br>'); // [1, 2, 3, 10]
for문 if문 이용 - sort() -> 오름차순
function solution(numbers) {
var answer = [];
for(let i=0; i<numbers.length; i++) {
for(let j=i+1; j<numbers.length; j++) {
let numSum = numbers[i]+numbers[j];
if(!answer.includes(numSum)) answer.push(numSum);
}
}
return answer.sort((a, b) => a-b); // 배열 오름차순 정렬
}
구글링을 통한 다른 사람의 풀이 - Set() 이용
Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.
function solution(numbers) {
const temp = []
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
temp.push(numbers[i] + numbers[j])
}
}
const answer = [...new Set(temp)]
return answer.sort((a, b) => a - b)
}