문제
풀이 코드
function solution(numbers) {
var answer = new Set();
for (let i = 0; i < numbers.length - 1; i++) {
for (let j = i + 1; j < numbers.length; j++) {
answer.add(numbers[i] + numbers[j]);
}
}
return [...answer].sort((a, b) => a - b);
}
풀이 과정
문제를 보자마자 Set 가 생각이 났다.
사실 자바스크립트에서 Set를 공부한 적은 없지만, 객체지향이라면 있을 것 같았다.
Set는 중복없는 콜렉션을 이야기 한다.
입력으로 들어온 배열의 모든 요소를 각각 더해주어야 하고,
중복을 제거하고, 오름차순으로 정렬해서 반환해야 한다.
그래서 Set 를 생성해 주었고, Set.add 를 통해 요소를 더해준 값을 Set에 포함시켰다.
이런 과정에서 중복된 값이 들어온다면 당연히 Set에 포함되지 않을것이다.
그렇게 2중 for 문으로 요소들을 구한뒤, 배열로 반환하고, 해당 배열을 오름차순으로 정렬하여 반환하였다.