TIL 231212 algorithm 없는 수 더하기

두두맨·2023년 12월 12일
0



풀이

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에서 빼주면 없는 수끼리 더한 값이 나오겠지 !!?
생각을 조금만 바꾸면 이렇게 풀 수 있다는게 신기하면서 대단하다.
나도 이렇게 풀고 싶다는 생각이 많이 든다. 내가 아는 대로 풀려고 하는 것도 좋지만, 한 문제를 풀면 반드시 다른 풀이 방식을 찾아보는 습관을 가지고 익숙하지 않은 방식으로 푸는 연습이 많이 필요한 것 같다.

profile
병아리 개발준비생 🐥

0개의 댓글