본문 바로가기
코딩 문제/프로그래머스 [ JavaScript ]

[ 프로그래머스 / JavaScript ] 짝수의 합

by CODESIGN 2022. 11. 4.

https://school.programmers.co.kr/learn/courses/30/lessons/120831?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 설명


정수 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 합니다.

 

 

나의 풀이


curr가 2부터 시작해서 하나씩 올라가며 짝수일 때 answer에 더해 주었다.

function solution(n) {
    let curr = 2;
    let answer = 0;
    while (curr <= n) {
        if (curr % 2 == 0){
            answer+= curr;
        }
        curr++;
    }
    return answer;
}

 

 

 

다른 풀이 #1


이런 수학공식...새로 알게 되었다. 진짜로 똑똑하게 푼 코드다.

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

 

 

다른 풀이 #2


for loop을 2씩 키우면 된다. 왜 생각 못했을까... 

이제는 코드를 적고나면 조금 더 효율적인 방법은 없을까를 생각해 봐야겠다.

function solution(n) {
    var answer = 0;
    for(let i=2 ; i<=n ; i+=2)
        answer += i;
    return answer;
}

 

 

댓글