프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 홀짝에 따라 다른 값 반환하기(Java)

Sigfriede 2023. 4. 28. 04:09

  문제 설명

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

 

  제한사항

  • 1 <= n <= 100

 

  입출력 예

n result
7 16
10 220
class Solution {
    public int solution(int n) {
        int answer = 0;
        for (int i = 1; i <= n; i++) {
            if (n % 2 != 0) {
                if (i % 2 != 0) {
                    answer += i;
                }
            } else {
                if (i % 2 == 0) {
                    answer += Math.pow(i, 2);
                }
            }
        }
        return answer;
    }
}

  조건문이 중첩되어서 한눈에 보기에는 잘 파악되지 않을 수 있습니다. 우선 for문이 n만큼 순회합니다. n 이하의 수를 계산해야 하기 때문입니다. 인덱스가 아닌, 숫자를 다루는 것이므로 i는 0이 아닌 1부터 시작합니다.

  첫번째 if문은 n이 홀수인지 짝수인지 판별합니다. 만약 n이 홀수라면 if문으로 n 이하의 모든 홀수를 찾아냅니다. 이렇게 찾아낸 홀수를 answer에 더하기 할당으로 계산합니다.

  만약 n이 홀수가 아니라면(짝수라면) else로 넘어옵니다. 다시 if문으로 n 이하의 짝수를 찾아냅니다. 문제에서는 양의 정수의 제곱의 합을 반환하라고 했으므로, Math 클래스의 pow 메소드를 이용합니다. pow 메소드는 제곱한 수를 반환합니다. 방법은 다음과 같습니다.

Math.pow(밑, 지수)
밑 : 제곱근
지수 : 제곱하는 횟수