Multiples of 3 or 5

이조은·2021년 1월 11일
0

Code Kata

목록 보기
13/15
post-thumbnail

문제

number가 인자로 주어질 때, number 미만의 수 중에서 3과 5의 배수의 합을 구하여라. 이때 각 배수는 딱 한 번씩만 세어진다. number가 음수라면 0을 반환한다.

solution (10) // returns 23

나의 풀이

🙆🏻‍♀️ 나의 첫 번째 풀이

function solution(number) {
  let sum = 0;
  if (number < 0) {
    return sum;
  } else {
    for (let i = 1; i < number; i++) {
      if (i % 3 === 0 || i % 5 == 0) {
        sum += i;
      }
    }
    return sum;
  }
}

✅ 첫 번째 풀이 리팩토링

사실 원래 풀이에서 number가 음수일 때를 조건으로 나누었는데 그럴 필요가 없었다. for문에서 i의 시작값을 1로 했고 number가 1보다 작다면 조건에 충족이 되지 않아 연산이 될 이유가 없기 때문이다.

for문에서 if문을 삼항연산자로 바꿀 수 있을 것 같아 바꿔보았다.

function solution(number) {
  let sum = 0;
  for (let i = 1; i < number; i++) {
    i % 3 === 0 || i % 5 == 0 ? (sum += i) : sum;
  }
  return sum;
}
profile
싱글벙글

0개의 댓글