학습일기 33

이건구·2023년 10월 10일
0

프로그래머스 자바 문제풀이

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

class Solution {
    public int solution(int n) {
        int answer = 0;
        if (n%2==0) {
            for (int i = 0; i <= n; i++) {
                if (i%2==0) {
                    answer += i*i;
                }
            }
        } else {
            for (int i = 0; i <= n; i++) {
                if (i%2!=0) {
                    answer += i;
                }
            }
        }
        return answer;
    }
}

조건문과 반복문 그안에 또 조건문을 넣는 언뜻보면 복잡해보이지만 천천히 뜯어보면 쉽다.

n이 짝수이면, 1씩 증가하는 i가 짝수가 될때마다 i제곱을 answer에 더해준다.

n이 홀수이면, 1씩 증가하는 i가 홀수가 될때마다 answer에 i를 더해주면된다.

홀수 vs 짝수

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int a = 0;
        int b = 0;
        for (int i = 0; i < num_list.length; i++) {
            if (i%2==0) {
                a += num_list[i];
            } else {
                b += num_list[i];
            }
        }
        if (a >= b) {
            answer = a;
        } else {
            answer = b;
        }
        return answer;
    }
}

첫번째 원소를 1번이라고하고 홀수번째 원소와 짝수번째 원소들의 합을 비교하는 문제이다.

홀수번째와 짝수번째를 굳이 구분할 필요는 없어서 합을 a와 b로 만들어두고, num_list의 짝수번째 인덱스 값을 a에 더하고 홀수번째 인덱스 값은 b에 더해준다음 a와 b를 비교해서 a가 b보다 크거나 같으면 a를 b가 크면 b를 리턴해준다.

0개의 댓글