안녕하세요. 이번에는 프로그래머스 약수의 합을 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12928?language=kotlin
Problem
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해 주세요.
[제한 사항]
○ n은 0 이상 3000 이하인 정수입니다.
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 사용 코드 |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 자릿수 더하기 Kotlin (4) | 2023.11.11 |
---|---|
[프로그래머스] x만큼 간격이 있는 n개의 숫자 Kotlin (0) | 2023.11.10 |
[프로그래머스] 짝수와 홀수 Kotlin (0) | 2023.11.09 |
[프로그래머스] 평균 구하기 Kotlin (0) | 2023.11.07 |
[프로그래머스] 나머지가 1이 되는 수 찾기 Kotlin (0) | 2023.11.06 |