[Lv1.]두 개 뽑아서 더하기

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

🔶내가 한 방법

  1. 이중 for문을 돌면서 모든 수를 더해봄
  2. 그 수를 new Set() 객체에 넣어 중복값이 없도록 함
  3. 그 객체를 새로운 배열로 만들고, sort를 통해 오름차순으로 정렬함.
  4. 배열을 반환함.
  • 방법1
function solution(arr) {
  const result = new Set();
  for (let i = 0; i < arr.length; i += 1) {
    for (let j = i + 1; j < arr.length; j += 1) {
      const num = arr[i] + arr[j];
      result.add(num);
    }
  }
  return [...result].sort((a, b) => a - b);
}

// 실행코드
console.log(solution([2, 1, 3, 4, 1])); // [2,3,4,5,6,7]
console.log(solution([5, 0, 2, 7])); // [2,5,7,9,12]
  • 방법2
function solution(arr) {
  const result = [];
  for (let i = 0; i < arr.length; i += 1) {
    for (let j = i + 1; j < arr.length; j += 1) {
      const num = arr[i] + arr[j];
      if (result.includes(num)) {
        continue;
      }
      result.push(num);
    }
  }
  return result.sort((a, b) => a - b);
}

// 실행코드
console.log(solution([2, 1, 3, 4, 1])); // [2,3,4,5,6,7]
console.log(solution([5, 0, 2, 7])); // [2,5,7,9,12]

좋은 웹페이지 즐겨찾기