728x90
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12928
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해 주세요.
제한사항
- n은 0 이상 3000 이하인 정수입니다.
입출력 예
n | return |
12 | 28 |
5 | 6 |
입출력 예 설명
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
코드
입력받은 정수 n의 약수의 합을 구하여 반환하는 문제다.
코틀린 표준 라이브러리 활용
class Solution {
fun solution(n: Int): Int {
val answer = (1..n).filter {
n % it == 0
}.sum()
return answer
}
}
- 1부터 n까지 범위를 filter 함수를 통해 n을 범위에 해당하는 숫자 it을 나눈 나머지가 0인 것만 추출한다.
- sum 함수를 통해 추출된 숫자들을 더한다.
for 문 사용
class Solution {
fun solution(n: Int): Int {
var answer = 0
for (i in 1.. n) {
if (n % i == 0) {
answer += i
}
}
return answer
}
}
- answer를 var 변수로 초기화한다.
- for 문을 통해 i를 1부터 n까지 반복하여 n을 i로 나눈 나머지가 0인 경우 answer에 i를 더한다.
728x90