- 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
- numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
그니까 0 ~ 9로만 이루어진 numbers 배열이 있는데 이중 없는 숫자를 찾아서 더해라라는 거구만
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
제한 사항이 아주 고마웠던 문제다
numbers 길이가 1 ~ 9로 제한되고, 모든 element 들이 다 다르다니 풀기 한결 수월하다 (●'◡'●)
입출력 예
numbers result
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6
분석한 대로 입출력이 나오는 걸 알 수 있다 :)
자 그럼 어떻게 풀어야 잘 풀었다고 할까
아 그러면 includes() 함수를 사용하면 편하겠구나!! ( ̄︶ ̄)↗
오케이 가보자
function solution(numbers) {
var answer = 0;
for(let i = 0; i < 10; i++){
if(!numbers.includes(i)){
answer += i
}
}
return answer;
가상의 ( 0 ~ 9 )를 각각 모두 포함한 배열이 있다고 가정하기위해
(i < 10)
을 조건에 걸었다
그렇게 쭉 반복문을 돌렸을 때, numbers 배열에 포함이 안된
(!numbers.includes(i))
element 들을 answer에 더하는 간단한 풀이였다 (❁´◡`❁)
근데 이게 위와 같은 가상의 배열을 그냥 전체 총 합이 45인 배열이라고 가정을 하면 또 다른 풀이가 나올 것 같았다.
function solution(numbers) {
for(let i = 0; i<numbers.length; i++){
answer += numbers[i]
}
return 45 - answer
}
0 ~ 9 의 총합이 45니까
45에서 numbers 배열의 모든 원소들의 합을 빼주면?
numbers 배열에 없는 원소들의 합이 나온다 ( ̄︶ ̄)↗