ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 프로그래머스 Lev.1 | 약수의 합
    코딩테스트/Lev.1 2024. 1. 7. 16:35

     

     

    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;
        }
    }

     

     


     

     

    // 약수 구하기 알고리즘
    
    N: 10
    1부터 10까지의 숫자로 10을 나눈다.
    이때 나머지가 0이면 해당 수는 N의 약수
    
    10 / 1 일때, 몫: 10, 나머지 0 / 따라서 1은 10의 약수
    10 / 2 일때, 몫:  5, 나머지 0 / 따라서 2는 10의 약수
    .
    .
    .
    10 / 10 일때, 몫: 1, 나머지 0 / 따라서 10은 10의 약수

     

    for (int i = 1; i <= n; i ++)

    분모가 0이면 안되니까 i 는 1부터 시작하고, 1과 자기자신은 약수이므로 i < n이 아니라 i <= n

    if (n % i == 0)

    나머지가 0일 때 i는 n의 약수

    answer += i;
    
    // answer = answer + i

    약수의 합을 answer에 누적시킨다.

Designed by Tistory.