치악산 복숭아

[프로그래머스] Level 1 - 두 개 뽑아서 더하기 본문

PS:0

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

Juliie 2020. 9. 15. 20:09

문제 설명

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


제한 사항

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

문제 풀이

1. 풀이 과정

이중 for문을 이용해서 모든 경우의 수를 조합하려고 했다. 이중 for문 안에는 같은 위치에 있는 수가 더해지는것을 막기 위해서 i !== j 조건을 걸었다. filter 함수를 이용해서 중복된 수를 제거한 뒤 sort 함수를 이용해서 오름차순으로 정렬했다.

 

2. 코드

function solution(numbers) {
    var answer = [];
     for(var i = 0; i<numbers.length; i++) {
        for(var j = i+1; j<numbers.length; j++) {
            if(i !== j) {
                answer.push(numbers[i]+numbers[j]);
            }
        }
    }
   answer = answer.filter((item, index) => answer.indexOf(item) === index);
    answer.sort(function(a, b) {
        return a - b;
    })
    return answer;
}
Comments