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

혜린·2022년 2월 26일
0
post-thumbnail

🔐 문제

정수 배열 numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하라.

  • 제한조건
    • numbers의 길이는 2 이상 100 이하입니다.
    • numbers의 모든 수는 0 이상 100 이하입니다.

  • Example


🔑 풀이

function solution(numbers) {
    let answer = [];
    for(let i = 0; i < numbers.length; i++) {
        for(let j = i+1; j < numbers.length; j++) {
            answer.push(numbers[i] + numbers[j]);
        }
    }
    return answer.sort((a, b) => a - b).filter((v, i) => answer[i] !== answer[i+1]);
}

📍 풀이과정

  • 정수 배열 numbers에서 두 값을 더해 나올 수 있는 모든 값들을 구하기
    예시와 같이 numbers가 [2,1,3,4,1]이라면 0번째인 2부터2+1, 2+3, 2+4, 2+1 인 값들을 구한 뒤, 1번째인 1부터 또 1+3, 1+4, 1+1 인 값들을 쭉쭉 구해 빈배열 answer에 담아놓는다. 이는 반복문을 중첩시킴으로써 구해낼 수 있었다.

  • 오름차순으로 정렬해준 뒤, 중복된 값은 걸러내기
    여러값이 담긴 answer를 먼저 sort()로 오름차순 정렬을 해준 뒤, filter()를 사용해 중복되지 않는 값들만 return하도록 해준다.
profile
FE Developer

0개의 댓글