1. 문제 설명 (📎Link)
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
2. 제한사항
n은 0 이상 3000이하인 정수입니다.
📝 문제
func solution(_ n:Int) -> Int {
return 0
}
💻 내가 푼 방법(테스트 실패)
1. 정수 n의 약수를 모두 구하기 → 정수 n을 어떠한 숫자 x로 나누었을 때 나머지가 0이라면 x는 n의 약수
2. 약수를 모두 더하는 기능
func solution(_ n:Int) -> Int {
//n을 나누어주기 위한 0보다 큰 정수x 선언
var x = 0
//약수를 모두 더한 결과값을 받기 위한 변수 result 선언
var result = 0
//변수x가 정수n보다 작거나 같을 때 까지 코드 실행
//n을 x로 나누었을 때 나머지가 0인 x를 모두 result 값에 더한다
//나머지가 0이 아니라면 x에 1씩 더해서 코드를 반복한다
while x <= n {
if n % x == 0 {
result += x
}
x += 1
}
return result
}
🚨 실패 이유: 정수n 을 나누기 위해서는 x가 0이 되면 안됨..
→ x를 1로 올려줌 -해결-
💻 내가 푼 방법(테스트 성공)
func solution(_ n:Int) -> Int {
var x = 1
var result = 0
while x <= n {
if n % x == 0 {
result += x
}
x += 1
}
return result
}
🔎 의문점과 공부한 것
1.
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 16. x만큼 간격이 있는 n개의 숫자 (0) | 2024.06.21 |
---|---|
[👾 Programmers] 15. 나머지가 1이 되는 수 찾기 (0) | 2024.06.19 |
[👾 Programmers] 13. 자릿수 더하기 (0) | 2024.06.18 |
[👾 Programmers] 12. 배열의 평균값 (0) | 2024.06.14 |
[👾 Programmers] 11. 짝수와 홀수 (0) | 2024.06.14 |