문제

 

풀이 코드

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 문으로 요소들을 구한뒤, 배열로 반환하고, 해당 배열을 오름차순으로 정렬하여 반환하였다.

+ Recent posts