출처: https://bumcrush.tistory.com/182 [맑음때때로 겨울]
반응형

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

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

package Programmers;

public class 약수의개수와덧셈 {
    public static void main(String[] args){
        약수의개수와덧셈 T = new 약수의개수와덧셈();
        int left = 13;
        int right = 17;
        T.solution(left, right);
    }
    public int solution(int left, int right) {
        int answer = 0;
        //약수의 개수가 짝수인것은 더하고 홀수인것은 빼자
        //1. left ~ right 까지 for문을 돌면서 각각의 약수 개수를 구한다.

        for (int i = left; i <= right; i++) {
            int cnt = divisorCnt(i);
            //개수가 짝수면 더하고 홀수면 빼자
            if(cnt % 2 == 0){
                //짝수일경우
                answer += i;
            }else{
                //홀수일경우
                answer -= i;
            }
        }
        return answer;
    }
    public int divisorCnt(int n){
        int cnt = 0;
        for (int i = 1; i <= n; i++) {
            if(n % i == 0){
                cnt ++;
            }
        }
        return cnt;
    }
}

1. 풀이
  1.1 ) divisorCnt 함수를 만든다. 
        -> 매개변수로 int 하나 받으면 약수의 개수를 return 
  1.2 ) For문 left ~ right 까지 
        - divisorCnt 에 left ~ right 까지 넣어보면서 cnt 를 리턴받아 짝수인지 홀수인지 구분하여 연산해준다.

반응형

+ Recent posts