Javascript

[프로그래머스 Level1] 없는 숫자 더하기 - 나의 코드, 우수코드(Javascript)

728x90
반응형

🚨문제

https://programmers.co.kr/learn/courses/30/lessons/86051?language=javascript 

 

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

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

programmers.co.kr

 

🔅예제 이해

숫자 배열에서 0-9사이의 없는 숫자를 더합니다.

 

 

☺️나의 코드

sort()

function solution(numbers) {
    //순서 정렬
    numbers.sort((a, b) => {
        if (a > b) return 1;
        if (a < b) return -1;
    })

    //존재하지 않는 값 더하기
    let answer = 0;
    let k = 0;
    for (let i = 0; i < 10; i++) {
        if (i != numbers[k]) {
            answer += i;
        } else {
            k++;
        }
    }
    return answer;
}

 

 

❗️ 풀이 순서

sort함수로 내림차순으로 숫자 배열을 바꾼다.

이후 존재하지 않는 값을 더한다.

 


👍우수 코드

프로그래머스에서 제공하는 다른 사람들의 코드 중 좋아요가 가장 높은 코드

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

 

 

❤️배운 점

합을 보자마자 reduce를 생각하긴 했는데, 45에서 그냥 빼버릴 생각은 못했다..
더 쉽게 쓸 방법을 고민해보고 코드를 써야겠다.

 

728x90
반응형