본문 바로가기

문제 풀이/Programmers

[프로그래머스] 약수의 합 (JAVA)

문제 출처 - Programmers

문제는 여기

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr


[풀이]

1. 1부터 n까지 반복을 돌려 n을 나눴을 때 나머지가 0이라면 값을 더해준다.

2. 1. 에서 구해진 값들을 리턴해준다.

[접근]

1. 약수를 모두 더해주기만 하면 되는 문제라고 생각하고 약수들을 합해주는 방법을 사용해서 문제를 풀고자 하였다.

[코드]

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        // 1부터 n까지
        for (int i = 1; i <= n; i++) {
            // 나머지가 0이면 약수
            if (n % i == 0)
                answer += i; // 값 더하기
        }
        
        return answer;
    }
}