개발/알고리즘
[프로그래머스][LEVEL1] 없는 숫자 더하기
ISA(류)
2021. 11. 13. 23:50
# 문제 원문
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);
}반응형