일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘 인증_1주차
- 다시정리하기
- 다시 정리해야함
- 코딩테스트
- 알고리즘 인증_2주차
- Filter
- 다시봐
- array랑 list
- 알고리즘 인증
- 취준기록
- iPortfolio
- filternot
- foldindexed
- 코틀린
- recyclerview
Archives
- Today
- Total
Moments of growth
[Lv1 Kotlin] 약수의 합 본문
[내 풀이]
class Solution {
fun solution(n: Int): Int {
var ans = 0
for(i in 1..n){
if(n%i==0){
ans += i
}
}
return ans
}
}
[다른 사람 풀이 1]
class Solution {
fun solution(n: Int): Int {
var answer = n
for (i in 1..n/2) {
if(n % i == 0)
answer += i
}
return answer
}
}
answer = n으로 놓는다. 그럼 예를 들어 1,2,3,4,6,12 이렇게 항상 1부터 n/2 안에 자기 자신 (n)을 제외한 약수의 합을 구할 수 있으므로 for(i in 1..n/2) 를 돌면 n을 제외한 다른 약수들의 합이 구해진다.
[다른 사람 풀이 2]
class Solution {
fun solution(n: Int): Int = (1..n).filter { n % it == 0 }.sum()
}
filter를 쓰면 그 조건에 해당하는 것만 빼낼 수 있잖아, 그걸 .sum()으로 합을 구한다. 정말 간단하게 구해진다,,
Comments