Blog

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

날짜 2023-10-26
사용 언어 Java
문제 유형 반복문, IF문, 수학
정답률 89%
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/181935

문제 #

문제 설명 #

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

제한사항 #
  • 1 ≤ n ≤ 100

나의 풀이 #

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        if(n%2!=0) {
            for(int i = 1; i<=n; i=i+2) {
                answer += i;
            }
        }
        else {
            for(int i = 2; i<=n; i=i+2) {
                answer += i*i;
            }
        }   
        
        return answer;
    }
}

다른 사람의 풀이 #

class Solution {
    public int solution(int n) {
        if (n % 2 == 1) {
            return (n + 1) * (n + 1) / 2 / 2;
        } else {
            return 4 * n/2 * (n/2 + 1) * (2 * n/2 + 1) / 6;   
        }
    }
}

관련개념 학습 #

이산 수학

$$\frac{n+1}{2} \times \frac{1}{2} \times (1+n)$$

n 이하의 홀수의 합 (등차수열)

$$n\times(n+2)\times(2n+2)\over12$$

n 이하의 짝수인 모든 양의 정수의 제곱의 합