본문 바로가기
개발/알고리즘

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

by ISA(류) 2021. 11. 13.

# 문제 원문

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


제한사항

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 수 ≤ 9
  • numbers의 모든 수는 서로 다릅니다.

입출력 예

numbers / result

[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6

 

# 문제 풀이

 

입력받은 numbers는 0부터 9 사이의 숫자들로 이루어진 배열이다. 해당 배열에서 0부터 9까지의 숫자 중 없는 숫자들의 합을 구하는 간단한 문제로 0부터 9까지의 합을 구한 후 그 합에서 입력받은 numbers의 요소를 빼주면 된다.

0부터 9 까지 합은 45다. 굳이 아래처럼 일일이 만들어서 계산할 필요까지는 없다. 나는 계산하기 귀찮아서 그냥 만들었다.

 

# 솔루션 플로우

1. 0-9까지의 수의 총합 total(45)을 구한다.

2. 입력 받은 numbers를 순회하면서 각 요소를 total에서 제해준다.

3. 얻어진 result를 반환한다.

1. FP

function solution(numbers) {
    const total = new Array(10).fill(true)
        .map((_, idx) => idx)
        .reduce((result, num) => result + num);
        
    return numbers.reduce((result, current) => result - current, total);
}
반응형