거누의 개발노트

[Java] 프로그래머스 - level1 - 약수의 합 본문

코딩테스트

[Java] 프로그래머스 - level1 - 약수의 합

Gogozzi 2022. 3. 14. 07:53
반응형

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제하 사항

  • n은 0 이상 3000이하인 정수입니다.

 

내 풀이

public int solution(int n) {
       int answer = 0;
       
       for (int i = 1; i <= n; i++) {
      if(n % i == 0) {
         answer += i;
      }
   }
       
       return answer;
   }

 

다른 풀이

public int sumDivisor(int num) {
        int answer = 0;
            for(int i = 1; i <= num/2; i++){
        if(num%i == 0) answer += i;
      }
        return answer+num;
    }

* num의 절반까지만 반복하고, 마지막에 자기자신을 더해주는 방법이 제일 효율적인 방법 인것 같다.

반응형
Comments