본문 바로가기
프로그래머스 Algorithm

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

by Echung 2023. 11. 8.

안녕하세요. 이번에는 프로그래머스 약수의 합을 풀어보려고 합니다.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/12928?language=kotlin

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


Problem

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

[제한 사항]

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

사진 1. 입출력 예

Solution

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

 for문을 사용하여 1부터 n까지의 값들 중 나머지가 0인 경우가 약수이므로 나머지가 0 인 i의 값들을 구하는 식으로 문제를 접근하였다. 더 나은 접근법이 있는지 궁금하여 다른 사람의 풀이를 확인해 봤는데 Filter와 Sum을 사용한 풀이법이 있어 공유해 본다. 

 

1. filter와 sum 사용

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

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

        return answer
    }
}

Performance

1. 내가 작성한 코드 2. Filter 와 Sum 사용 코드
실행 결과
사진 2. 실행 결과
실행 결과
사진 3. 실행 결과

 

반응형