[프로그래머스] 없는 숫자 더하기
본문 바로가기
코딩 테스트 연습/Programmers

[프로그래머스] 없는 숫자 더하기

by 은돌1113 2023. 8. 30.

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ numbers의 길이 ≤ 9
    • 0 ≤ numbers의 모든 원소 ≤ 9
    • numbers의 모든 원소는 서로 다릅니다.

입출력 예

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

입출력 예 설명


입출력 예 #1

  • 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

입출력 예 #2

  • 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

문제풀이

  • 나의 풀이
    • 첫번째 코드 > for문과 includes()를 사용하여 없는 숫자는 answer에 더해지도록 하였다.
    • 두번째 코드 > Array.from()을 사용하여 0부터 9까지 숫자를 가지고 있는 배열을 생성하고, forEach()와 includes()를 사용하여 없는 숫자만 answer에 더해지도록 하였다.
function solution(numbers) {
  var answer = 0;

  for (let i = 0; i < 9; i++) {
    if (!numbers.includes(item)) {
      answer += item;
    }
  }

  return answer;
}

solution([1, 2, 3, 4, 6, 7, 8, 0]);
solution([5, 8, 4, 0, 6, 7, 9]);

 

function solution(numbers) {
  var answer = 0;
  const arr = Array.from({ length: 10 }, (_, i) => i);

  console.log(arr);

  arr.forEach((item) => {
    if (!numbers.includes(item)) {
      answer += item;
    }
  });

  return answer;
}
  • 다른 분의 풀이
    • 0부터 9까지의 숫자 중에 없는 숫자들의 합을 구하는 것이기 때문에 총 합인 45에서 numbers의 합을 구해서 뺀 코드인 데 숫자가 작을 때는 나의 풀이보다 좋은 풀이인 것 같다!
function solution(numbers) {
  var answer = -1;

  answer = 45 - numbers.reduce((acc, cur) => acc + cur, 0);

  return answer;
}

solution([1, 2, 3, 4, 6, 7, 8, 0]);
solution([5, 8, 4, 0, 6, 7, 9]);
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

댓글