본문 바로가기
기초다지기/JS 코딩테스트

javascript 배열 내 없는 숫자 더하기

by 김빵그 2023. 10. 18.

 

문제

0부터 9까지 숫자가 랜덤으로 들어있는 정수 배열 numbers가 변수로 주어진다. 0부터 9까지 없는 숫자를 모두 찾아 더한수를 리턴하여라

코드 풀이

function solution(numbers) {
    var num = [0,1,2,3,4,5,6,7,8,9];
    var arr = num.filter(x => !numbers.includes(x));
    return arr.reduce((a,b) => a+b)
}
  • fliter를 사용하여 numbers에 포함되지 않은 숫자들을 필터링한다.
  • includes : 배열의 항목에 특정 값이 있는지 판단하여 t/f로 리턴한다
 

Array.prototype.includes() - JavaScript | MDN

Array 인스턴스의 includes() 메서드는 배열의 항목에 특정 값이 포함되어 있는지를 판단하여 적절히 true 또는 false를 반환합니다.

developer.mozilla.org

다른 코드 풀이

1) reduce 사용

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

 

  • 1부터 9까지의 합 45에서 numbers 배열의 합을 빼면 된다

2) for문 사용

function solution(numbers) {
    let answer = 0;

    for(let i = 0; i <= 9; i++) {
        if(!numbers.includes(i)) answer += i;
    }

    return answer;
}
  • for 루프를 사용하여 i를 0에서 9까지 증가시키며 반복한다
  • i값이 numbers 배열에 포함되지 않으면 answer변수에 i값을 더한다