알고리즘 풀이 - 두 개 뽑아서 더하기

picture 22

두 개 뽑아서 더하기

function solution(numbers) {
  const results = new Set()

  for (let i = 0; i < numbers.length; i++)
    for (let j = i + 1; j < numbers.length; j++)
      results.add(numbers[i] + numbers[j])

  return Array.from(results).sort((a, b) => a - b)
}

풀이 과정

  1. set을 준비한다. (중복된 요소가 없기 때문)
  2. 2차원 for문 돌리면서 각 객체들끼리 더한다.

    1. 같은 수를 두 번 더하지 않도록 주의
  3. set을 Array로 바꾸고 sort 후 return한다.

주의 사항

  • 순서 2에서 같은 요소를 더하지 않도록 주의한다.
  • sort를 그냥 실행하면 순서를 보장하지 않는다

    • 자료형이 number여도 string 형식으로 sort한다.
    • array.sort((a, b) => a - b) 같이 이용하면 sort 완료

다듬을 수 있는 사항

고민 사항

  • 갑자기 든 궁금증

    • js의 sort는 왜 이렇게 동작하는걸까? 포스트 작성 후 알아보자

Written by@박대성

독서와 지식관리에 관심이 많은 개발자

GitHub