본문 바로가기
알고리즘

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

by 지 요니 2023. 4. 7.
🔔 문제 설명

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
🔔 나의 문제풀이
function solution(numbers) {
  var answer = 0;
  for (let i = 1; i < 10; i++) {
    if (!numbers.includes(i))
        answer += i;
  }
  return answer;
}

includes()를 사용해 0~9까지 중 numbers에 없는 숫자들만 더하기

 

🔔 다른사람의 문제풀이
function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}

주어진 수들의 합(0+1+2+...+9=45)에서 reduce()를 이용하여 배열의 모든 값의 합을 뺀다.

 

🔔 사용 메서드
  • Array.includes(valuetofind[, fromIndex]): 배열이 특정 요소를 포함하고 있는지 판별 => 찾지 못할 경우 false반환
  • false: "", false, NaN, undefined, null, 0
  • .reduce(callback[, initialValue]): 배열의 각 요소에 대해 주어진 reducer 함수를 실행하고, 하나의 결과값을 반환 
    • callback
      • accumulator
      • currentValue
      • currentIndex
      • array

댓글