ALGORITHM/Programmers + α

[프로그래머스] lv1. 없는 숫자 더하기

Harimad 2022. 6. 7. 15:28

문제

https://programmers.co.kr/learn/courses/30/lessons/86051

 

코딩테스트 연습 - 없는 숫자 더하기

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

programmers.co.kr

코드 및 풀이

<script>
function solution(numbers) {
    let answer = 0, numArr = [1,2,3,4,5,6,7,8,9,0];
    for (let x of numbers) numArr.splice(numArr.indexOf(x), 1);
    for (let v of numArr) answer += v;
    return answer;
}
</script>

1. 숫자 배열 변수 생성

2. 함수인자 배열의 루프 돌면서 숫자 배열(numArr)안에 있는 값과 비교하며 해당 되는 값 삭제 시킴

3. 숫자 배열에 남은 요소들을 합산 해서 리턴함

 

더 나은 풀이

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

1. [0~9] 의 숫자 합인 45에서 함수인자 배열을 reduce 메서드로 더한 값을 빼줌

2. 그리고 리턴

 

느낀점

문제자체는 쉽다.

그래도 블로그에 글을 쓰게된 이유는, 얼마나 다른 사람들이 코드를 효율적이게 썼는지 확인하고 공부하기 위함이다.

열린 마음으로 다른 사람의 풀이를 보고 이해하는 과정이 흥미진진하다.