코테

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

콩쥐땃쥐 2025. 1. 7. 05:09

1차시도

function solution(n) {
    var answer = 0;
    if (n % 2 === 0){
        for (let i = 0; i < n + 1; i++){
            i % 2 === 0 ? answer += i * i : answer += 0;
        }
    }
    else {
        for (let i = 0; i< n + 1; i++){
            i % 2 === 0 ? answer += 0 : answer += i;
        }
    }
    return answer;
}

통과는 했는데, 코드가 길어서 무슨 좋은 방법이 없을까 고민

function solution(n) {
    if(n%2===1)
      return  (n+1)/2*((n + 1)/2) ;
    else
      return   n*(n+1)*(n+2)/6;
}

 

n이 짝수일 때는 등차수열의 합 공식을 적용하였고, n이 홀수일 때는 자연수 거듭 제곱의 합을 구하는 공식을 적용한 것으로 보입니다. 반복문과 조건문을 활용하지 않는 멋진 풀이네요.

 

등차수열...? 코테를 풂에 있어서 수학을 뗄 수가 없나보다...