본문 바로가기
Study Note/Algorithm

프로그래머스 #월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 lv1

by 시뮝 2021. 1. 22.
728x90

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

두 개의 합을 구하는 경우의 수였기에 심플하게 2중 포문으로 해결해보았다. 만약 3개 이상의 무작위 수를 더하는 문제였다면 풀이 방법이 달라졌을 것이다.

 

모든 경우의 수를 answer에 담았고, 중복을 제거하기 위하여 ES6부터 제공하는 new Set()을 사용하였다.

 

Set을 한 후 정렬을 하는 것이 테스트 결과 성능이 향상되어 Set() 을 먼저한 뒤 sort()시켰다.

728x90

댓글