[프로그래머스 JS] 두 개 뽑아서 더하기

이얀·2021년 10월 30일
0

알고리즘

목록 보기
17/22

문제 설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

제한사항

numbers의 길이는 2 이상 100 이하입니다.
numbers의 모든 수는 0 이상 100 이하입니다.

풀이

const solution = numbers => {
  const length = numbers.length;
  let arr = [];
  for(let i = 0 ; i < length ; i++) {
    for(let j = i + 1 ; j < length ; j++){
      arr.push(numbers[i] + numbers[j]);
    }
  }
  const set = new Set(arr);
  return [...set].sort((a,b) => a-b);
}

설명

  1. 입력배열의 길이만큼 반복하는 for문을 만든다.
  2. 1에서 만든 for문 안에 for문을 하나 더 만든다. (j는 i보다 작거나 같을 필요가 없으므로 let j = i + 1)
  3. numbers[i] + numbers[j] 를 배열에 push 한다.
  4. Set 객체를 이용해서 배열에서 중복을 없애준다.
  5. 배열 요소를 오름차순으로 정렬하여 return 해준다.

0개의 댓글