0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
| numbers | return |
|---|---|
| [1,2,3,4,6,7,8,0] | 14 |
| [5,8,4,0,6,7,9] | 6 |
나는 쉽게 생각해서 0부터 9까지 담긴 배열 arr이 있는데 그중에 numbers로 이적하는 녀석들이 있다고 생각했다.
arr= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 인데 이 중에 numbers 라는 배열로 이적하는 녀석을 제외하고 남아있는 값들의 합을 구해주면 된다.
문제에서 원하는 numbers에서 찾을 수 없는 값들의 총합은 원래배열의 총합 - numbers 배열의 총합 이라고 생각하고 풀었다.
function solution(numbers) {
// numbers의 총합으로 쓰일 sum을 초기화해준다.
let sum = 0;
// 주어진 numbers를 순회하면서 하나씩 더해준다.
for(let i = 0; i < numbers.length; i++){
sum += numbers[i];
}
// 원래 배열의 총합인 45에서 주어진 numbers의 합계 값을 빼준다.
// numbers로 이적하지 않고 남아있는 요소들의 합이 구해진다.
let answer = 45 - sum;
return answer;
}
reduce를 이용한 방법인데 아직 이해를 못해서 reduce를 공부하고 있다.
reduce 공부를 하고서 다시 도전!
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}