코딩 테스트/프로그래머스

[JS] 짝수 구하기 :

감귤밭호지차 2022. 12. 24. 13:53

 아직 해결되지 않은 궁금증이 있는 게시물 

 

문제 설명

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

 

# 내가 처음 짠 코드 

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

❌ 계속 에러가 났던 이유가 위에 var sum = 0; 으로 초기화를 안 해줘서 인데 정확하게 왜 안해 주면 에러가 나고 해주면 알맞게 시행되는지 궁금. 

 

 

 

 


 

 

 

# 다른 사람들의 번뜩이는 코드 방식(1)

function solution(n) {
    var half = Math.floor(n/2);
    return half*(half+1);
}

💡와.. 이거를 그냥 수학 공식을 알고 있었던 거네... 쩐다잉 

 

 

#다른 사람들의 번뜩이는 코드 방식(2)

function solution(n) {
    var answer = 0;

    for(let i=2 ; i<=n ; i+=2)  //여기를 중요하게 체크쓰
        answer += i;

    return answer;
}

💡와..for문에서 아예 짝수만 돌게 만듬... 

 

 

#다른 사람들의 번뜩이는 코드 방식(3)

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

아니 슨생님.. 이건 뭐쥬,,,,

 

 

✔️사용한 함수 

 

①  Math.floor( )

 소수점 이하 버리기

 

 (3) 코드 관련 - .fill ()  / .map()  / .filter ( )  / .reduce( )

 

 

 

 

 

✳️참고 링크 :