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

김소은·2024년 6월 24일

알고리즘

목록 보기
26/55
post-thumbnail

프로그래머스의 Lv.1 약수의 개수와 덧셈 문제 풀이

문제 설명

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ left ≤ right ≤ 1,000

문제 풀이
1. left~right까지 수를 구하기
2. 주어진 수의 약수가 몇개인지 확인
3. 약수의 갯수가 짝수인면 +, 아니면 -로 해서 주어진 수를 계산
여기서 약수가 몇개인지 구하는 과정은 메서드를 사용하여 계산을 하였다.
위와 같은 순으로 계산을 한다고 정해 놓았고, 해당 풀이 코드는 다음과 같다.

코드

public int solution(int left, int right) {
   int sum = 0;

   for (int i = left; i <= right; i++) {
     int div = divisors(i);
     if (div % 2 == 0) {
       sum += i;
     } else {
       sum -= i;
     }
   }
   return sum;
 }

 private int divisors(int n) {
   int count = 0;
   for (int i = 1; i <= n; i++) {
     if (n % i == 0) {
       count++;
     }
   }
   return count;
 }
profile
차근차근 잘 해보자!

0개의 댓글