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

Miro·2022년 7월 28일
0
post-thumbnail

프로그래머스 Lv.1 두 개 뽑아서 더하기

문제, 제한사항

입출력

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function solution(numbers) {
    let answer = [];
    
    for(let i = 0; i < numbers.length-1; i++) {
        for(let j = i + 1; j < numbers.length; j++) {
            let a = numbers[i] + numbers[j];
            
            answer.push(a);
        }
    }
    
    let set = new Set(answer);
    let result = [...set];
    
    result.sort((a, b) => a - b);
    
    return result;
}
cs

이중 반복문을 사용해서 i는 첫 번째 더하는 수, j는 두 번째 더하는 수로 한다.
i는 0부터 전체 길이의 -1까지 반복하고, ji+1부터 전체 길이의 끝까지 반복한다.

numbers[i]numbers[j]를 더해서 빈 배열 answer에 차례대로 push 해준다.

배열 answerSet을 이용하여 중복을 제거하고, 전개연산자(...)를 이용하여 다시 배열의 형태로 result에 할당한다.

result의 순서를 맞춰주기 위해서 sort를 사용하고, a-b를 해줘서 10이상의 숫자가 먼저 정렬되는 것을 방지해준다.

a-b가 양수면 a가 더 크기 때문에 b가 앞으로 오게 되고, 음수라면 b가 더 크기 때문에 a가 앞으로 온다.
a-b가 0이라면 수가 같기 때문에 그대로 있는다.

profile
프론트엔드 개발자(진)

0개의 댓글