문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
n은 0 이상 3000이하인 정수입니다.
1차 코드
func solution(_ n:Int) -> Int {
var res = 0
for i in 1...n {
if n % i == 0 {
res += i
}
}
return res
}
1차 결과
1차 진단
코어 덤프 오류가 한 문제에서 발생했다.
n이 0일 때 1부터 0까지라고 설정된 for문에 문제가 있는 것 같아 0일 경우에 대한 if문을 작성하면 풀릴 것 같다.
2차 코드
func solution(_ n:Int) -> Int {
var res = 0
if n == 0 {
return 0
}
for i in 1...n {
if n % i == 0 {
res += i
}
}
return res
}
2차 결과
추가 의견
코드가 괜히 길어보이니 {}를 한 줄에 줄일 수 있지 않을까?
최종 코드
func solution(_ n:Int) -> Int {
var res = 0
if n == 0 { return 0 }
for i in 1...n { if n % i == 0 { res += i }}
return res
}
미흡했던 점
조건에서 n은 0 이상인데 0을 넣을 경우를 배제하고 코드를 짠 것.
'iOS > Programmers' 카테고리의 다른 글
[Swift] lv.1 자릿수 더하기 | Programmers (0) | 2024.02.21 |
---|---|
[Swift] lv.1 나머지가 1이 되는 수 찾기 | Programmers (1) | 2024.02.15 |
[Swift] lv.1 x만큼 간격이 있는 n개의 숫자 | Programmers (0) | 2024.02.02 |
[Swift] lv.1 평균 구하기 | Programmers (0) | 2024.02.02 |
[Swift] lv.1 짝수와 홀수 | Programmers (0) | 2024.01.29 |