문제 :
내 풀이 :
function solution(numbers) {
let resultSet = new Set();
for(let i = 0; i < numbers.length; i++) {
for(let j = i+1; j < numbers.length; j++) {
resultSet.add(numbers[i] + numbers[j]);
}
}
const resultArr = [...resultSet];
return resultArr.sort((a, b) => a - b )
}
1. resultSet 선언 - Set은 중복된 값을 허용하지 않는 자료구조로 두 숫자의 합이 중복되더라도 Set에 저장해서 중복값을 제거한다.
2. 이중 반복문을 사용하여 숫자의 쌍을 찾기
- 첫 번째 for문은 배열 numbers의 각 요소를 차례대로 선택한다. 인덱스 i가 첫 번째 숫자를 가리킨다.
- 두 번째 for문은 선택된 첫 번째 숫자 이후의 숫자들을 선택한다. 즉, 인덱스 j가 i + 1부터 배열 끝까지 탐색한다. 이렇게 함으로써 중복된 쌍이 나오지 않게 보장된다.
3. 두 숫자의 합을 resultSet에 추가
4. resultSet을 배열로 변환 및 정렬
- resultSet은 Set 자료구조이므로, 이를 배열로 변환하기 위해 전개 연산자(...)를 사용하여 새로운 배열 resultArr로 변환한다.
- 변환된 배열은 정렬이 되어 있지 않으므로, sort() 메서드를 사용해 오름차순으로 정렬한다.
'프로그래머스' 카테고리의 다른 글
[JavaScript] 푸드 파이트 대회 - 프로그래머스 (0) | 2024.09.19 |
---|---|
[JavaScript] 가장 가까운 같은 글자 - 프로그래머스 (1) | 2024.09.12 |
[JavaScript] 크기가 작은 부분 문자열 - 프로그래머스 (3) | 2024.08.28 |
[JavaScript] 최소직사각형 - 프로그래머스 (0) | 2024.08.27 |
[JavaScript] 삼총사 - 프로그래머스 (0) | 2024.08.20 |