[JavaScript] 홀짝에 따라 다른 값 반환하기

Yeojin·2024년 2월 14일

코딩테스트 연습 > 코딩 기초 트레이닝

✅ 문제 설명

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.


✅ 제한사항

  • 1 ≤ n ≤ 100

✅ 입출력 예

n result
7 16
10 220

✅ 풀이

내가 작성한 코드는 for문을 활용한 아주 정직한 코드이다😂
홀수일 때는 oddNum에 홀수 값을 할당하였고 짝수일 때는 evenNum에 짝수 값을 Math.pow() 함수를 활용하여 할당하였다.


// 나의 풀이
const solution = (n) => {
    let evenNum = 0;
    let oddNum = 0;

    for(let i = 1; i <= n; i++) {
        if(i % 2 === 1) {
            oddNum += i;
        } else if(i % 2 === 0) {
            evenNum += Math.pow(i, 2);
        }
    }

    return n % 2 === 1 ? oddNum : evenNum;
}

아래 풀이에서는 반복문을 활용하지 않고 n이 짝수일 때는 등차수열의 합 공식을 적용하였고, n이 홀수일 때는 자연수 거듭 제곱의 합을 구하는 공식을 적용했다고 한다.
수학적인 지식이 있어야 작성 가능한 코드인 것 같다🥲


// 다른 사람의 풀이 참고
function solution(n) {
    if(n % 2 === 1)
      return (n+1) / 2 * ((n + 1)/2) ;
    else
      return n * (n+1) * (n+2) / 6;
}
profile
"Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better."

0개의 댓글