코틀린/코딩테스트
코딩테스트 [약수의 합]
정혜현
2024. 6. 27. 10:12
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12928
풀이
1. 접근
1.1 관찰
약수를 더해서 반환하는 문제
입력 : 정수
출력 : 정수
1.2 계획
n을 나눠서 조건에 따라 반복문으로 더해야겠다.
2. 시행착오
2.1 시도
class Solution {
fun solution(n: Int): Int {
var answer = 0
for(i in 1..n) {
if(n % i == 0) answer += i
}
return answer
}
}
검증결과 : 성공
코드를 줄일 수 있는 방법을 찾아보다가 범위 표현식도 표현식이라 단독으로 쓸 수 있다는 걸 알게돼서 앞으로 유용하게 사용되겠다.
class Solution {
fun solution(n: Int): Int = (1..n).filter{ n % it == 0 }.sum()
}
회고
오늘 스크럼에서 우연하게도 팀원 4명이 약수 및 소수 문제를 풀었는데 그 안에서 filter를 활용하여 기억에 남았다. for문을 쓸 수 있을 때 filter 사용을 고려해볼 것!