Develop

[프로그래머스] 홀짝에 따라 다른 값 반환하기 본문

개인 공부/프로그래머스

[프로그래머스] 홀짝에 따라 다른 값 반환하기

개발 기록 2024. 1. 15. 14:19

문제

 

내풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        if(n % 2 == 0){ // 주어진 수가 짝수면 제곱+
            while(n > 0){
                answer += (n % 2 == 0)? n*n : 0 ;
                n--;
            }
        }
        else{ // 주어진 수가 홀수면 +
            while(n > 0){
                answer += (n % 2 == 1)? n : 0 ;
                n--;
            }            
        }
        System.out.println(answer);
        return answer;
    }
}

 

 

다른 풀이

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

 

 

느낀점

 

풀면서 조금 더 줄일 수 있을것같더니

3항 연산자를 저렇게 이용해야 했다

하나씩 -- 하는 것만 생각했는데 -2를 하면 된단든 것을 알게 되었다

 

고친 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        while(n > 0){
            answer += (n % 2 == 0)? n*n : n ;
            n-=2;
        }
        return answer;
    }
}

 

 

이 코드가 제일 깔끔하고 좋은듯