Algorithm

프로그래머스 코딩테스트 / 약수의 합

공부처음하는사람 2023. 12. 24. 00:59

약수는 mod로 계산했을 때 값이 0이 나오기 때문에
그 값을 더해주는 식으로 풀어봤다.

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

if문으로 약수의 값을 구하고 answer에 하나씩 더해준 후 return했다.

다른사람의 풀이

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

        answer = (1..n).filter { n % it == 0 }.sum()

        return answer
    }
}

filter함수를 사용해 훨씬 보기 깔끔하다.
filter는 Boolean값에 따라 필터링 여부를 결정한다.
위의 경우 n % it == 0이 되는 결과를 filtering 한 후
sum으로 값을 더해주었다.

참조) filter 함수
https://blog.yena.io/studynote/2020/01/22/Kotlin-Collection-Filter.html

알고리즘을 풀며 느낀점은 코틀린은 함수가 너무 다양하다.
이 기능을 파악하는게 코딩 효율이 올라가겠지만 너무 낯설다 ㅠㅠ