프로그래머스

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

jjangsh 2024. 9. 10. 09:35

문제 :

 

 

내 풀이 :

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() 메서드를 사용해 오름차순으로 정렬한다.