Moments of growth

[Lv1 Kotlin] 약수의 합 본문

카테고리 없음

[Lv1 Kotlin] 약수의 합

뮤링이 2022. 9. 17. 22:31

[내 풀이]

class Solution {
    fun solution(n: Int): Int {
        var ans = 0
        for(i in 1..n){
            if(n%i==0){
                ans += i
            }
        }
        return ans
    }
}

 

[다른 사람 풀이 1]

class Solution {
    fun solution(n: Int): Int {
        var answer = n
        for (i in 1..n/2) {
            if(n % i == 0)
                answer += i
        }
        return answer
    }
}

answer = n으로 놓는다. 그럼 예를 들어 1,2,3,4,6,12 이렇게 항상 1부터 n/2 안에 자기 자신 (n)을 제외한 약수의 합을 구할 수 있으므로 for(i in 1..n/2) 를 돌면 n을 제외한 다른 약수들의 합이 구해진다.

 

 

[다른 사람 풀이 2]

class Solution {
    fun solution(n: Int): Int = (1..n).filter { n % it == 0 }.sum()
}

filter를 쓰면 그 조건에 해당하는 것만 빼낼 수 있잖아, 그걸 .sum()으로 합을 구한다. 정말 간단하게 구해진다,,

Comments