본문 바로가기

코딩 나도 할 수 있다!!

2024.04.30 (화) 코틀린 약수의 합

이런 문제가 있다

만약 12의 약수인 1,2,3,4,6,12를 다 더하면 28이다

그렇다면 코드를 짜보자

 

class Solution {
    fun solution(n: Int): Int {
        var answer = 0
        return answer
    }
}

 

기본 코드에 살을 붙여야 한다

일단 약수를 모두 구해보자

 for (i in 1..n) {
     if (n % i == 0)
}

 

1부터 n까지 반복하고
n에서 i를 나눴을 때 나머지가 0이 된다
n이 12 i가 5일 때 나머지가 0이 나오지 않으니 5는 12의 약수가 아니다
이런 식으로 약수를 구하는 코드를 짰다

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

그리고 answer = answer + i
answer + i의 결과를 answer에 할당한다
그리고 answer를 return 한다
내가 잘 이해하고 있는지는 잘 모르겠지만 내가 이해하기로는 이렇다
만약 틀린 부분이 있으면 좀 더 공부하고 내 거로 만들어야 진짜 공부의 의미가 아닐까 싶다