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;
}