function solution(numbers) {
var answer = [];
for(let i = 0;i<numbers.length;i++){
for(let j = i+1;j<numbers.length;j++){
answer.push(numbers[i]+numbers[j])
}
}
answer = new Set(answer)
answer = Array.from(answer)
answer.sort((x,y)=>x-y)
return answer;
}
2중 for문을 이용해 i,j를 서로 겹치지 않게 합한 수를 anwer 배열에 push 해주고
set 객체는 value만을 저장하며 중복을 허용하지 않는 것을 이용해 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)
}
const anwer = [...new Set(temp)]
-> 전개 연산자를 이용한 방법까지는 생각하지 못했다. 알고는 있지만, 이용하지 못하는게 생각보다 많은 것 같다. 문제를 못 풀어서 풀이 방법을 보면 답답하다...많이 풀어보는게 답인거겠지..?
function solution(numbers) {
var answer = [];
numbers = numbers.sort();
console.log(numbers);
for(var i = 0; i < numbers.length; i++){
for(var k = i+1; k < numbers.length; k++){
if(!answer.includes(numbers[i]+numbers[k])){
answer.push(numbers[i]+numbers[k]);
}
}
}
answer = answer.sort(function(a, b){
return a-b;
});
return answer;
}
includes 메서드를 사용해 푸는 방법도 있다.