문제 설명
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 |
입출력 예 설명
입출력 예 #1
- 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
입출력 예 #2
- 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
문제풀이
- 나의 풀이
- 첫번째 코드 > for문과 includes()를 사용하여 없는 숫자는 answer에 더해지도록 하였다.
- 두번째 코드 > Array.from()을 사용하여 0부터 9까지 숫자를 가지고 있는 배열을 생성하고, forEach()와 includes()를 사용하여 없는 숫자만 answer에 더해지도록 하였다.
function solution(numbers) {
var answer = 0;
for (let i = 0; i < 9; i++) {
if (!numbers.includes(item)) {
answer += item;
}
}
return answer;
}
solution([1, 2, 3, 4, 6, 7, 8, 0]);
solution([5, 8, 4, 0, 6, 7, 9]);
function solution(numbers) {
var answer = 0;
const arr = Array.from({ length: 10 }, (_, i) => i);
console.log(arr);
arr.forEach((item) => {
if (!numbers.includes(item)) {
answer += item;
}
});
return answer;
}
- 다른 분의 풀이
- 0부터 9까지의 숫자 중에 없는 숫자들의 합을 구하는 것이기 때문에 총 합인 45에서 numbers의 합을 구해서 뺀 코드인 데 숫자가 작을 때는 나의 풀이보다 좋은 풀이인 것 같다!
function solution(numbers) {
var answer = -1;
answer = 45 - numbers.reduce((acc, cur) => acc + cur, 0);
return answer;
}
solution([1, 2, 3, 4, 6, 7, 8, 0]);
solution([5, 8, 4, 0, 6, 7, 9]);
'코딩 테스트 연습 > Programmers' 카테고리의 다른 글
[프로그래머스] 삼총사 (0) | 2023.09.04 |
---|---|
[프로그래머스] 옹알이 (2) (0) | 2023.08.31 |
[프로그래머스] 크기가 작은 부분 문자열 (0) | 2023.08.29 |
[프로그래머스] 모의고사 (0) | 2023.08.28 |
[프로그래머스] 폰켓몬 (0) | 2023.08.25 |
댓글