본문 바로가기
Computer/Algorithm_Java

[Algorithm_Java] 약수의 합 (Success)

by HJ0216 2023. 10. 30.
 

프로그래머스

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

programmers.co.kr

 

 

Language: Java

1
2
3
4
5
6
7
8
9
10
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1; i<=n; i++){
            if(n%i==0) answer += i;
        }
        return answer;
    }
}
 

* 1부터n까지 약수 확인

1
2
3
4
5
6
7
8
9
10
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1; i<=n/2; i++){
            if(n%i==0) answer += i;
        }
        return answer + n;
    }
}
 

* 1부터 n/2까지 약수 확인

    -  n의 절반까지만 반복하는 이유: n의 절반을 넘어가면 더 이상 n의 약수가 될 수 없음

    - 1을 제외한 최소 약수는 2, 3, 4 ...인데, 약수는 대칭구조를 이루므로 n/2보다 클 수 없음

* answer + n

    - 자기 자신은 자기 자신의 약수이므로 return값에 추가

 

 

 

🔗 소스 코드
GitHub

 

📚 참고 자료

 

프로그래머스

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

programmers.co.kr