본문 바로가기

코딩테스트

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

문제 설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

 

제한사항

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

나의 정답

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

    return answer;
}

 

문제풀이 프로세스 : 

1)배열 내에서 두 개의 수가 전부다 더해지는 경우의 수를 구하기 

->for(let i = 0; i < numbers.length; i++){
        for(let a = i + 1; a < numbers.length; a++){
            answer.push(numbers[i] + numbers[a])
        }
    }

 

2)구한배열 내에 중복된 요소를 제거하고, 다시 배열의 형태로 만들어주기 

->[...new Set(answer)]

 

3)배열을 오름차순으로 정렬하기 

-> answer = [...new Set(answer)].sort((a,b)=> a-b);