프로그래머스 - 코딩테스트 연습 두 개 뽑아서 더하기 (javascript)

wooreal·2021년 4월 9일
0

programers

목록 보기
1/2

문제

https://programmers.co.kr/learn/courses/30/lessons/68644

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

입출력 예

numbers		result
[2,1,3,4,1]	[2,3,4,5,6,7]
[5,0,2,7]	[2,5,7,9,12]

나의 풀이

solution.js

function solution(numbers) {
    let answer = cal(numbers);
    return answer;
}
const cal = (array) => {
    let rt = [];
    array.map((num, idx) => {
      for (let i = 0; i < array.length; i++) {
        if(i !== idx){
          let element = array[i];
          let number = num + element;
          if(-1 === rt.indexOf(number)){
            rt.push(number);
          }
        }
      }
    });
    rt.sort(function(a, b)  {
      return a - b;
    });
    return rt;
};

설명

단순하게 기준으로 삼을 수 하나를 가지고 다른 수들과 더하고, 더한 결과값을 배열에 넣을 때, 똑같은 값이 없으면 넣도록 작성했다. 겹치는 숫자가 없게끔 만들어진 배열안에 값들을 sort 해서 오름차순으로 정렬하였다.

profile
내가 쓰고, 내가 보고, 나만 보고

0개의 댓글