프로그래머스 - 없는 숫자 더하기

이진성·2022년 5월 30일
0

알고리즘

목록 보기
1/2

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

고민

단순하게 없는 숫자를 찾아서 더하면 된다고 생각, 예전에 공부 할 때 javascript에서 array를 사용하는 다양한 functions가 있던걸 생각하고 찾아보고, some을 적용 some으로 numbers라는 array에서 값이 있는지 없는지 확인(없으면 false, 있으면 true를 반환) false일때 answer에 값을 더함

소스 코드

function solution(numbers) {
    var answer = 0;
    for(let a = 0; a < 10; a++){
        if(!numbers.some(e => e === a)) answer += a;
    }
    return answer;
}

다른 사람의 소스 코드 분석

function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}

전체 더한값 - 배열에 있는 값을 하면, 우리가 알아야 할 값

깨달은 점

너무 깊은 고민 없이, 단순하게 이렇게 하면 되겠지? 라는 생각으로 문제를 접근한 거 같다.
조금 더 수학적으로 접근하고, 고민했으면 좋은 방법이 나올 것 같음

profile
좋은 소스 코드를 연구하는 개발자

0개의 댓글