JS Algorithm/Lv.0

JS Lv.0 짝수의 합

걍조이 2022. 10. 27. 18:54

문제 설명

정수 n이 주어질 때, 
n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

제한 사항

0 < n ≤ 1000

입출력의 예

n result
10 30
4 6

입출력 예 설명

입출력 예 #1
n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.

입출력 예 #2
n이 4이므로 2 + 4 = 6을 return 합니다.

내가한 답

function solution(n) {
    var answer = 0;
    
    if(n >=0 && n<=1000){
        for(let i=1; i<=n; i++) if(i%2 == 0) answer +=  i; 
    }else{
        answer = "제한사항 확인 필요";
    }
    return answer;
}

🧚‍♀️알고가기

fill()

filter()

function solution(n) {
  return Array(n)
    .fill()
    .map((_, i) => i + 1)
    .filter((v) => v % 2 === 0)
    .reduce((acc, cur) => acc + cur, 0);
}

trunc()

function solution(n) {
    let count = Math.trunc(n / 2)
    return count * (count+1)
}

 

continue

function solution(n) {
    var answer = 0;
    for (let i=1; i<=n ;i++){
        if(i%2!==0) continue;
        answer +=i;
    }
    return answer;
}

 

function solution(n) {
    return n=~~(n/2),n*n+n
}