가수면

[Javascript] 없는 숫자 더하기 본문

CS/코딩 테스트

[Javascript] 없는 숫자 더하기

니비앙 2022. 11. 19. 12:53

문제 설명

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

제한사항
  • 1 ≤ numbers의 길이 ≤ 9
    • 0 ≤ numbers의 모든 원소 ≤ 9
    • numbers의 모든 원소는 서로 다릅니다.
입출력 예
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6

 

 


 

내가 쓴 코드

function solution(numbers) {
    var answer = -1;
        answer = 0
    
    numbers.forEach((value) => answer += value)

    let sum = 45 - answer
    
        answer = sum

    return answer;
}

처음에는 없는 숫자를 찾는 방법을 고민해보다가 어차피 0부터 9까지 하나씩만 있는 거라면 배열을 다 더하고 45에서 빼면 되겠구나라는 생각에 도달.

이때까지만 해도 베이스 코드들 건드리면 안 되는 건줄 알고 번거롭게 코드를 작성했었다.

 

다른 사람이 쓴 코드

function solution(numbers) {
    let answer = 0;

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

    return answer;
}

숫자가 커지면 전체 합을 알기 어렵기 때문에 이 접근법이 더 좋은 걸로 보인다.


.includes()

배열이 특정 요소를 포함하고 있는지 판별한다.

const array1 = [1, 2, 3];

console.log(array1.includes(2));
true

console.log(array1.includes(4));
false
Comments