function solution(numbers) {
var answer = 0;
for(let i =1; i<=9; i++){
if(!numbers.includes(i))
answer += i
}
return answer;
}
includes
메서드를 이용하여 배열에 포함된 수를 뽑아내는 로직을 작성한 후, 맨 앞에 !
를 붙여 그 값의 반대의 경우를 도출한다.
if
문에 그 조건을 만족하는 i를 answer
에 더해주도록 하면 결과가 참이 된다!
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
0에서 9까지 모두 더하면 45가 나옴...
numbers
배열에 들어간 수를 reduce
메서드로 다 더해주고, 45에서 빼주면 없는 수끼리 더한 값이 나오겠지 !!?
생각을 조금만 바꾸면 이렇게 풀 수 있다는게 신기하면서 대단하다.
나도 이렇게 풀고 싶다는 생각이 많이 든다. 내가 아는 대로 풀려고 하는 것도 좋지만, 한 문제를 풀면 반드시 다른 풀이 방식을 찾아보는 습관을 가지고 익숙하지 않은 방식으로 푸는 연습이 많이 필요한 것 같다.