[프로그래머스][Java] 홀짝에 따라 다른 값 반환하기 (Lv.0)

박현아·2024년 10월 16일
0

programmers-java

목록 보기
10/35

👩‍💻 문제

🙋‍♀️ 답변

뭔가 더 간단하게 할 방법이 있을 것 같은데 나는 서술형처럼 풀어서 답을 냈다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        if (n%2 == 0 ) { // 짝수
            for (int i=2; i<=n; i+=2) { // 2부터 시작해서 n까지 2를 더해간다
                answer += i * i;
            }
        } else if (n%2 == 1) { // 홀수
            for (int i=1; i<=n; i+=2) { // 1부터 시작해서 n까지 2를 더해간다
                answer += i;
            }
        }
        
        return answer;
    }
}

🤔

다른 답변들 구경하다가 발견한 것
거듭제곱 구하는 메서드 : Math.pow(n,m)
나중에 유용하게 쓸 수 있을 것 같다!!
내 답변에서는 i * i 대신 Math.pow(i, 2)라고 쓰면 i 제곱이 된다.

더 간결한 답 공유합니다.

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씩 빠지는 건 똑같으니까 n부터 시작해서 2씩 빼면서 더하는 게 더 간단하구나!! for문 다르게 두 개 쓸 필요도 없고 너무 좋은걸! if문 대신에는 삼항 연산자로 더 간단하게!

0개의 댓글