본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Programmers] level 1: 두 개 뽑아서 더하기 by JavaScript

by codingBear 2022. 7. 7.
728x90
반응형

 이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요.

 

 프로그래머스 level 1에 자주 출제되는 유형 중의 하나이다. 주어진 숫자 배열을 해당 배열의 길이만큼 for문으로 탐색하면서 i는 1씩 증가하는데, 이렇게 1씩 증가하는 i에다 나머지 숫자들을 뜻하는 j를 더하여 정답 배열에 j가 없다면 push하는 식으로 풀면 된다. 입력 받는 숫자 배열 및 정답 배열을 오름차순으로 정렬해줘야 한다는 점에 유의하자. 그리고 중복을 제거하는 데에는 if문을 사용하지 않고 Set()을 활용해도 된다.

 

Solutions

Solution 1.
function solution(numbers) {
  /* My Solution */
  const answer = [];
  numbers.sort((a, b) => a - b);

  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      const sum = numbers[i] + numbers[j];
      if (!answer.includes(sum)) answer.push(sum);
    }
  }
  return answer.sort((a, b) => a - b);
}
Solution 2.
function solution(numbers) {
  /* Set Ver. */
  let answer = [];
  numbers.sort((a, b) => a - b);

  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      const sum = numbers[i] + numbers[j];
      answer.push(sum);
    }
  }

  return (answer = [...new Set(answer)].sort((a, b) => a - b));
}
728x90
반응형

댓글