[코딩테스트] Lv.1 없는 숫자 더하기

Keunyeong Lee·2022년 1월 16일
0

[코딩테스트]

목록 보기
4/11
post-thumbnail

☝🏽 문제

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

❗️ 제한사항

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

입출력 예

입출력 예 설명

입출력 예 #1

5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

입출력 예 #2

1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

🙋🏽‍♂️ 풀어보기!

function solution(numbers) {
  const numArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  let answer = 0;
  numArr
    .filter((num) => !numbers.includes(num))
    .forEach((num) => (answer += num));
  return answer;
}

🤔 이슈!

  • 바~~로 : 100점

  • 처음 접근은 forEach로 돌려서 같은거 제외 시키고 남기자! 했는데 남기는건 역시 filter!

👍 다른사람 풀이 중 내가 생각하는 베스트!

  • 많은 분들의 풀이
function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
  • 없는 수들의 합을 구하면 되니.. 있는 수들을 총합에서 빼주면 간단..

  • 항상 이마를 탁.. 이것도 있네..

  • 더 간단하고 좋은 풀이를 찾는 것도 좋지만 내 풀이 처럼 순서가 필요할 수도 있다고 생각한다!

⚙️ 리펙토링!

function solution(numbers) {
  const numArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  let answer = 
  numArr
    .filter((num) => !numbers.includes(num))
    .reduce((prev, cur)=> prev + cur);
  return answer;
}
  • 배열의 모든 값을 더하거나 배열 전체를 활용한 결과를 구할때 좋은 reduce() 사용해서 해봄!
profile
🏃🏽 동적인 개발자

0개의 댓글