약수는 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
알고리즘을 풀며 느낀점은 코틀린은 함수가 너무 다양하다.
이 기능을 파악하는게 코딩 효율이 올라가겠지만 너무 낯설다 ㅠㅠ
'Algorithm' 카테고리의 다른 글
프로그래머스 코딩테스트 / 나머지가 1이 되는 수 (1) | 2024.01.10 |
---|---|
프로그래머스 코딩테스트 / 자릿수 더하기 (1) | 2023.12.24 |