본문 바로가기

개발/코테

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

[문제]

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

[내 풀이]

class Solution {
    public int solution(int n) {
        int answer = 0;
        if ( n % 2 == 0 ){
            for( int i =1; i <= n; i++){
                if (i % 2 ==0 ){
                    answer += (i*i);
                }
            }
        }
        else {
            for ( int i =1; i <=n; i++){
                if(i % 2 !=0){
                    answer += i;
                }
            }
        }
        
        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;
    }
}

- for문에서 2씩 마이너스 -> 홀수면 계속 홀수가, 짝수면 계속 짝수가

- 그 후 삼항 연산자 이용해서 더하는 것 구현

'개발 > 코테' 카테고리의 다른 글

[JAVA] 주사위게임2  (0) 2024.04.05
[JAVA] 조건 문자열  (0) 2024.04.04
[JAVA] 공배수  (0) 2024.04.04
[JAVA] 두 수의 연산값 비교하기  (0) 2024.04.04
[JAVA] 더 크게 합치기  (0) 2024.04.02