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

Cielo·2023년 2월 22일
0

프로그래머스

목록 보기
2/3
post-thumbnail

코딩테스트 연습 > 월간 코드 챌린지 시즌3 > 없는 숫자 더하기
Lv.1 / 정답률 83%

❓ 문제 상황

0~9 사이의 숫자로 이루어진 정수 배열이 매개변수로 주어진다. (중복된 숫자 없음)
0~9 중 해당 배열의 숫자가 아닌 수들의 합을 리턴한다.

풀이 1

✅ 활용된 개념

Array.length ; 배열의 길이

const arr = ["a", "b", "c"];
console.log(arr.length); // 3

💻 코드

function solution(numbers) {
    let answer = 45;
    
    for (let i = 0; i < numbers.length; i++) {
        answer -= numbers[i];
    }
    
    return answer;
}

설명

  • 0~9의 합인 45에서 배열의 숫자들을 모두 빼준다.
  • 시간복잡도 : O(n)

풀이 2

✅ 활용된 개념

  • reduce 함수
    Array.reduce(function(누산기, 배열요소, 인덱스, 원본배열) {}, 누산기 초기값);
  • 화살표 함수

💻 코드

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

설명

  • 0~9의 합인 45에서 배열의 숫자들을 모두 빼준다.
  • 누산기 acc의 초기값을 0~9의 합으로 설정한다.
  • 누산기에서 배열 numbers의 모든 요소를 빼준다.
  • 누산기 값을 반환하는 reduce함수를 써서 바로 리턴한다.
profile
풀스택 개발자를 꿈꾸는 프론트엔드 개발자 지망생💻

0개의 댓글