약수의 합 (자바)

김재현·2023년 11월 28일
0

알고리즘 풀이

목록 보기
33/89
post-thumbnail

문제

업로드중..

정답 코드

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

이제는 익숙해진 제곱근을 이용하여 약수를 구한 뒤, 그것을 더해줬다.

다른 사람 풀이

class SumDivisor {
    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;
    	}
    }

이분은 제곱근이 아닌, 절반까지 루프를 돌렸다.
절반보다는 제곱근이 시간복잡도 측면에서 더 우수하다고 볼 수 있겠다.

profile
I live in Seoul, Korea, Handsome

0개의 댓글