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

coderH·2022년 8월 6일
0

프로그래머스코테

목록 보기
20/27
post-thumbnail

없는 숫자 더하기

문제

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

제한사항

  • 1 ≤ numbers의 길이 ≤ 9
    • 0 ≤ numbers의 모든 원소 ≤ 9
    • numbers의 모든 원소는 서로 다릅니다.

입출력 예

numbersresult
[1,2,3,4,6,7,8,0]14
[5,8,4,0,6,7,9]6

정답

function solution(numbers) {
    let emptyNum = 0;
    for (let i = 0; i <= 9; i++) {
        if (!numbers.includes(i)) emptyNum += i;
    }
    return emptyNum;
}

풀이

for문을 통해 numbers배열을 순환하면서includes 메소드를 통해 i값이 배열에 존재하는지 확인합니다.
만약 없다면 해당 i값을 emptyNum변수에 더하며 집어넣고 반복문이 종료되면 해당 변수값을 반환합니다.

다른 풀이

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

0~9의 합은 45입니다.
어차피 반환해야하는 값은 없는 숫자들의 합이기 때문에 주어진 numbers의 모든 숫자를 더한 후 45에서 빼게되면 없는 숫자들의 합이 return되게 됩니다.

0개의 댓글