이 문제의 경우 경우의 수에 대한 완탐의 첫걸음이라고 보면 되겠습니다. 문제 풀이는 이중 for문을 돌렸는데, 첫번째 for문은 주어진 배열의 첫번째부터 배열의 -1까지(마지막 숫자는 두번째 for문에서 더할 것이므로 해당 범위를 설정) 돌리고 두번째 for문은 배열의 두번째부터(각각 i+1의 값) 배열의 끝까지 돌면서 배열의 현재 i 자리의 값과 그 다음 값을 더합니다.
그리고 그 결과값이 result 배열에 들어있지 않은 상태일 때에만 push를 해주면 다음부터는 중복되는 결과값이 나와도 result 배열에는 이미 그 값과 중복되는 값이 들어있을 때 무시하고 계속 for문을 이어나갑니다.
그 후 반한된 배열을 오름차순 해준 후 return해줍니다.
function solution(numbers) { const result = []; for(let i = 0 ; i < numbers.length - 1 ; i++){ for(let j = i+1 ; j < numbers.length ; j++){ const number = numbers[i] + numbers[j] if(!result.includes(number)) result.push(number); } } return result.sort((a, b) => a - b); }