0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
numbers | result |
---|---|
[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
를 사용할 수 있는 방법은 없을까 고민했는데 이런 방법은 생각지도 못했다.