프로그래머스 코딩테스트 레벨1.두 개 뽑아서 더하기(JavaScript)

부기·2022년 1월 31일

문제 설명

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

제한사항

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

내 코드

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

풀이 과정

  1. 배열 안에서 두 개씩 모두 더해보려면 for문 안에 또 for문을 돌려야 겠다고 생각했다.
  2. 그래서 하나는 배열 index 0부터 마지막 요소 전까지 도는 for문과 배열 index 1부터 마지막 요소까지 도는 for문 두가지를 만들었다.
  3. for문을 돌면서 요소끼리 더한 수를 일단 모두 배열에 넣어주었다.
  4. 이후 Set을 이용하여 중복을 없애고 다시 배열로 변환하였다.
  5. 변환한 배열을 sort를 통해 오름차순으로 정렬하였다.
profile
무럭무럭 자라는 중 ∙∙∙🌱🐣

0개의 댓글