1차 공부/알고리즘

없는 숫자 더하기

공대탈출 2022. 11. 22. 19:42
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한 사항
1 ≤ numbers의 길이 ≤ 9
0 ≤ numbers의 모든 원소 ≤ 9
numbers의 모든 원소는 서로 다릅니다.

 

 

내 풀이

function solution(numbers) {
    var answer = 0;
    for (let i=1; i<=9; i++){   //i를 비교값인 1~9숫자로 반복문 돌림
        if (numbers.includes(i)===false){   //numbers에 i가 포함되지 않는다면
            answer = answer + i //answer에 해당 i값 더함
        }
    }
    return answer;
}

 

 

 

다른사람의 깔끔한 풀이

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

배열.reduce((누적값, 현재값, 인덱스, 요소) => {return 결과}, 초깃값)

위에선 인덱스, 요소 안쓰고 return 에 accumulator + currentValue 더함.

'1차 공부 > 알고리즘' 카테고리의 다른 글

평균 구하기  (0) 2022.11.22
음양 더하기  (0) 2022.11.22
문자열을 정수로 바꾸기  (0) 2022.11.22
두정수사이의합  (0) 2022.11.22
가운데 글자  (1) 2022.11.22