Programmers | #Lv1 "없는 숫자 더하기 "

블로그 이사 완료·2022년 9월 23일
0
post-thumbnail

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.


제한 조건

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 원소 ≤ 9
  • numbers의 모든 원소는 서로 다릅니다.

입/출력 예

numbersresult
[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 해야 합니다.


나의 풀이

function solution(numbers) {
  let answer = 0;
  for (let i = 0; i <= 9; i++) {
    if (!numbers.includes(i)) answer += i;
  }
  return answer;
}

다른 풀이


function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}

Review

문제 해석과 어떻게 해야할지 까지는 생각했었다.
0부터 증가시키면서 배열 안에 있는지 확인하기.

근데 배열 함수들을 많이 익히지 못한 상태에서 문제를 마주하니 내가 알고있는 함수만으로는 풀기 어려웠다.

그래서 결국 구글링을 통해 includes() 함수를 알게 되었고 쉽게 풀 수 있었다.

이렇게 문제 하나씩 풀면서 새로운 함수 공부도 되니 구글링 하는거에 너무 부정적이게 생각하지 말자.

다른 사람의 풀이는 0~9까지의 모든 합인 45에서 배열의 모든 수를 더한 값을 빼는 방식으로 풀었는데, 주어진 수가 너무 많으면 좋은 방법이 아닌 것 같다.


참고 : 제목

profile
https://kyledev.tistory.com/

0개의 댓글