본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [약수의 개수와 덧셈] 자바 Lv.1

by tripleup 2023. 8. 6.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌2 -> 약수의 개수와 덧셈

https://school.programmers.co.kr/learn/courses/30/lessons/77884


해결 과정

 

이 문제는 left부터 right까지 중 짝수개의 약수를 갖는 수들의 합을 구하면 된다.

 

먼저 이중 for문을 사용하여 약수의 개수를 변수 a를 이용하여 나타내준다. 

left부터 right 까지의 수를 i라고 표현하고, 나눠주는 수를 j라고 표현하면

 

i % j == 0 이 될 때 약수의 개수인 a를 ++해주면 된다.

 

약수의 개수를 구하는 반복문을 벗어나면, 이 a 가 짝수인지 홀수인지 판별하는 반복문을 만들어

 

짝수일 경우에는 answer += i 를 해주고

홀수일 경우에는 answer -= i 를 해준다

 

그리고 나서 right까지 똑같이 반복해주면되는데, 이때 int a=0을 넣어 개수가 새로 초기화 해주도록 하면 된다.

 

소스 코드

 

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

 


728x90
반응형

댓글