[프로그래머스/Lv1/자바스크립트] 두 개 뽑아서 더하기

2023. 5. 26. 12:43

문제

https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


코드

function getSubSets(arr) {
    var subSets = [];
    for (var start = 0; start < arr.length; start++) {
        for (var end = start + 1; end < arr.length; end++) {
            subSets.push([arr[start], arr[end]]);
        }
    }

    return subSets;
}

function solution(numbers) {
    var subSets = getSubSets(numbers);
    var sumList = [];
    for (var subset of subSets) {
        sumList.push(subset.reduce((acc, cur) => acc + cur));
    }

    var answer = Array.from(new Set(sumList)).sort((a, b) => a - b);
    
    return answer;
}

메모

부분집합을 구하고 그 부분집합의 원소들의 합을 구할 때 중복되는 값들이 있으니 Set을 통해 중복을 제거해줘야 한다.

BELATED ARTICLES

more