문제
0부터 9까지 숫자가 랜덤으로 들어있는 정수 배열 numbers가 변수로 주어진다. 0부터 9까지 없는 숫자를 모두 찾아 더한수를 리턴하여라
코드 풀이
function solution(numbers) {
var num = [0,1,2,3,4,5,6,7,8,9];
var arr = num.filter(x => !numbers.includes(x));
return arr.reduce((a,b) => a+b)
}
- fliter를 사용하여 numbers에 포함되지 않은 숫자들을 필터링한다.
- includes : 배열의 항목에 특정 값이 있는지 판단하여 t/f로 리턴한다
Array.prototype.includes() - JavaScript | MDN
Array 인스턴스의 includes() 메서드는 배열의 항목에 특정 값이 포함되어 있는지를 판단하여 적절히 true 또는 false를 반환합니다.
developer.mozilla.org
다른 코드 풀이
1) reduce 사용
function solution(numbers) {
return 45 - numbers.reduce((a, c) => a + c, 0);
}
- 1부터 9까지의 합 45에서 numbers 배열의 합을 빼면 된다
2) for문 사용
function solution(numbers) {
let answer = 0;
for(let i = 0; i <= 9; i++) {
if(!numbers.includes(i)) answer += i;
}
return answer;
}
- for 루프를 사용하여 i를 0에서 9까지 증가시키며 반복한다
- i값이 numbers 배열에 포함되지 않으면 answer변수에 i값을 더한다
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
javascript 배열 내 가장 작은 수 제거하기 (0) | 2023.10.19 |
---|---|
javascript 무작위 정수 배열 중에서 n으로 나누어 떨어지는 숫자의 배열 생성 (1) | 2023.10.18 |
javascript a,b 사이의 모든 정수의 합 (1) | 2023.10.05 |
Palindrome Number (0) | 2023.10.04 |
javascript 2차원 배열 내 리스트에 id, pw가 있는지 찾고 일치 여부에 따른 메세지 반환 (3) | 2023.09.12 |