[프로그래머스 Lv1] 없는 숫자 더하기 - (Javascript)

eeeyooon·2023년 12월 16일
0

없는 숫자 더하기

문제 링크

📩 문제 설명

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

제한사항

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

입출력 예

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

제출 답안

function solution(numbers, answer=0) {    
    for (let i=0; i<10; i++) {
        if (!numbers.includes(i)) answer += i;
    }
    return answer;
}

답안 설명

0부터 9까지 반복문을 돌리며 해당 숫자가 numbers 배열에 있는지 체크를 했고, 없을 땐 answer에 누적으로 더하게 하였다.


다른 사람의 풀이

function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}

0에서 9까지의 모든 숫자의 합에서 존재하는 숫자들의 합만 빼면 되는 거니 0에서 9까지의 합인 45에서 존재하는 숫자들의 누적값을 빼는 방식이다. 전혀 생각하지 못한 방법이라 깜짝 놀랐다. reduce를 사용할 수 있는 방법은 없을까 고민했는데 이런 방법은 생각지도 못했다.

0개의 댓글