프로그래머스 - level1(두 개 뽑아서 더하기)

4178 단어 algorithmalgorithm

문제

문제풀이

이번 문제의 핵심은 결국 배열안의 모든 두 수의 합의 경우의 수를 구하고 중복값을 제거하는 것이다.
모든 두 수의 합 경우의 수는 2중 for문으로 해결했고, 중복값 제거는 indexOf를 사용했다.

function solution(numbers) {
  let newArr = [];
  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      //2중 for문으로 배열 안의 두 수의 합의 모든 경우의 수를 구한다.
      if (newArr.indexOf(numbers[i] + numbers[j]) === -1) {
        //indexOf를 이용하여 두 수의 합이 기존의 값에 없는 경우만 push한다.
        newArr.push(numbers[i] + numbers[j]);
      }
    }
  }
  return newArr.sort((a, b) => a - b);
}

solution([5, 0, 2, 7])

좋은 웹페이지 즐겨찾기