문제) 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
function solution(numbers) {
let answer=45;
for(let i=0; i<numbers.length;i++){
answer-=numbers[i];
}
return answer;
}
class Solution {
public int solution(int[] numbers) {
int answer = 45;
for(int i=0;i<numbers.length;i++){
answer-=numbers[i];
}
return answer;
}
}
0부터 9까지의 합은 45이기 때문에 answer의 초기값을 45로 두고 이후에 numbers배열 안의 값을 answer에서 하나씩 빼주는 것으로 풀었다.
cf)두번째 방법으로는 0부터 9까지의 값이 모두 들어간 배열을 하나 만들고 numbers배열의 값을 하나씩 빼준 뒤 남은 배열 요소들을 합치는 방법이 있다.
function solution(numbers) {
var answer=0;
const a=[0,1,2,3,4,5,6,7,8,9];
for(let i=0; i<numbers.length;i++){
for(let j=0;j<a.length;j++){
if(numbers[i]===a[j]){
a.splice(j,1);
}
}
}
for(let t=0;t<a.length;t++){
answer+=a[t];
}
return answer;
}
첫번째 방법과 두번째 방법을 시도했을 때의 속도 비교