[프로그래머스/자바] 약수의 개수와 덧셈

Wuchang·2023년 2월 17일

코딩테스트

목록 보기
6/13

문제설명

풀이 및 후기

이번 문제는 요구 범위 수들의 약수 갯수를 알아야한다. 특정 수의 약수의 갯수를 구하기 위한 메서드를 따로 만들어준 후, solution 메서드에서 요구하는 값을 출력해주는 방식으로 풀었다.
약수로 나눴을 때 나머지값이 없으므로, 아래와 같이 구현했다.

    public int counter(int num) {
        int count=0;
        for (int i = 1; i <= num; i++) {
            if (num % i == 0) {
                count++;
            }
        }
        return count;
    }

for문으로 left 부터 right 까지 위에 만들어준 counter() 메서드를 사용해 약수의 갯수를 구하고, 짝수면 + 홀수면 - 해주었다. 쉽게 풀 수 있는 문제였다.

전체코드


class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        for (int i = left; i <= right; i++) {
            if (counter(i) % 2 == 0) {
                answer += i;
            } else {
                answer -= i;
            }
        }
        return answer;
    }

    public int counter(int num) {
        int count=0;
        for (int i = 1; i <= num; i++) {
            if (num % i == 0) {
                count++;
            }
        }
        return count;
    }
}
profile
우창의 개발일지🐈

0개의 댓글