## 🌟 문제 [코딩테스트 연습 - 두 개 뽑아서 더하기 \| 프로그래머스 스쿨](https://school.programmers.co.kr/learn/courses/30/lessons/68644) numbers에서 서로 다른 인덱스에 있는 2개의 수를 뽑아서 더해서 만들 수 있는 모든 수를 구하기. 배열에 담아 오름차순 반환 ## 🌟 풀이 1. 2개의 수를 뽑아 더한 수를 Set에 넣는다. (중복을 제거함 (입출력 예 2를 보면 알 수 있음)) 2. Set을 배열로 만들고, 오름차순 정렬해서 반환 ```javascript function solution(numbers) { let answerSet = new Set(); for (let i = 0; i < numbers.length - 1; i++) { for(let j = i + 1; j < numbers.length; j++) { answerSet.add(numbers[i] + numbers[j]); } } return [...answerSet].sort((a, b) => a - b); } ``` > **시간 복잡도** > 모든 조합을 결정하는데 N<sup>2</sup> > 만들어진 조합을 정렬하는데 최악의 경우 N<sup>2</sup>log(N<sup>2</sup>) > 최종 시간 복잡도는 O(N<sup>2</sup>log(N<sup>2</sup>)) 으로 굉장히 좋지 않지만, numbers의 길이가 100이하로 작기 때문에 문제 풀이에는 영향을 주지 않는다.