이중 for문을 통한 풀이
function solution(numbers) {
var answer = [];
for (let i=0; i<numbers.length; i++ ){
for (let j=i+1; j <numbers.length; j++) {
let x = numbers[i]+numbers[j]
if (answer.indexOf(x) === -1 ) answer.push(x)
}
}
return answer.sort((a,b) => a-b);
}
조합을 구하는 함수를 이용한 풀이. 배열의 길이나 뽑는 숫자가 바뀌어도 적용할 수 있다.
function solution (numbers) {
let answer = []
let getNum = 2
function getCombi(numbers, getNum) {
if (getNum===1) return numbers.map(v => [v])
numbers.forEach( (fixed, index, origin) => {
const rest = origin.slice(index+1)
const combis = getCombi(rest, getNum-1)
const attach = combis.map(combi => fixed+parseInt(combi))
answer.push(...attach)
})
}
getCombi(numbers,getNum)
return answer = [...new Set(answer)].sort((a,b)=>a-b)
}