홀짝에 따라 다른 값 반환하기(수학공식 사용)

Psj·5일 전
0

코딩테스트

목록 보기
11/12

내 풀이

class Solution {
    public int solution(int n) {
    int count = 1;
        int num = 0;
        
        if(n%2 == 1){
            while(count<=n){
                if(count%2 == 1){
                    num += count;
                }
                count++;
            }
            return num;
        }else{
            while(count<=n){
                if(count%2 == 0){
                    num += (count)*(count);
                }
                count ++;
            }
            return num;
        }
    }
}  

문제점
반복문마다 조건을 확인함

다른사람 풀이 1

class Solution {
    public int solution(int n) {
        int answer = 0;

            for(int i = n; i >= 0; i -= 2)
                answer += (n % 2 == 0) ? i * i : i;

        return answer;
    }
}

문제점
짝수일때와 홀수일때를 -2라는 조건을 주어서 해결했고 삼항연산자를 사용하여 코드는 짧지만 반복문과 그 반복문마다 조건확인

다른사람 풀이 2

class Solution {![](https://velog.velcdn.com/images/psj0810/post/74a2ef02-38a8-4174-be42-c88c56788d8c/image.png)
![](https://velog.velcdn.com/images/psj0810/post/6cde9aa6-3ed0-4d29-9207-b363af8bd4a7/image.png)

    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;   
        }
    }
}

업로드중..
업로드중..

profile
Software Developer

0개의 댓글