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

creativeBin·2022년 12월 29일
0

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한 사항

  • n은 0 이상 3000이하인 정수입니다.

입출력 예

nreturn
1228
56

입출력 예 설명

입출력 예 #112의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

입출력 예 #25의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

풀이

1) 그냥 약수 구해서 sum 해주면 된다.

2) range range, filter, 나머지 0 체크 , sum

class Solution {
    fun solution(n: Int): Int {                        
        
        var filter = (1..n).filter { n % it == 0 }        
        var reduce = filter.reduce { total, element -> total + element }
        
        return reduce
    }
}

이렇게 하면 RunTimeError가 뜨더라.. 왜?..👿 return타입도 Int 맞는데..

sum() 이라는 함수가 있어서 대입해봤는데 통과..

아직도 영문을 모르겠다.

class Solution {
    fun solution(n: Int): Int {                        

        var filter = (1..n).filter { n % it == 0 }.sum()
        //var reduce = filter.reduce { total, element -> total + element }

        return filter
    }
}

결론은 그냥 이렇게 해결

profile
언제나 항상 즐겁게 New vibes 😎

0개의 댓글