0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers
가 매개변수로 주어집니다. numbers
에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
numbers
의 길이 ≤ 9numbers
의 모든 원소 ≤ 9numbers
의 모든 원소는 서로 다릅니다.numbers
의 길이가 1 이상 9 이하라 가능한 아이디어인 것 같다.
zerotonine
을 만든다.zerotonine
을 하나씩 순회하면서 해당 수가 numbers
배열에 있는지 해당 인덱스를 Array.prototype.indexOf()
메소드로 확인한다.-1
이면 numbers
에 존재하지 않는 수이므로, answer
에 더해준다.function solution(numbers) {
var answer = 0;
var zerotonine = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
zerotonine.forEach(num => {
let idx = numbers.indexOf(num);
idx == -1 ? answer += num : numbers.splice(idx, 1);
})
return answer;
}
다른 사람이 Array.prototype.reduce()
메소드를 활용하여 한 줄로 끝내버렸는데, reduce
메소드도 정말 잘 이용해야겠다는 생각을 하게 된 계기가 되었다.
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}