티스토리 뷰
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 조건
n은 0 이상 3000이하인 정수입니다.
내 답안
func solution(_ n:Int) -> Int {
var result = 0
if n > 0 {
for i in 1...n {
if n % i == 0 {
result += i
}
}
}
return result
}
접근 방법
다른 풀이
func solution(_ n:Int) -> Int {
return n != 0 ? (1...n).filter{n % $0 == 0}.reduce(0, +) : 0
return n != 0 Array(1...n).filter{n % $0 == 0}.reduce(0, +) : 0
}
알게 된 것
처음에 filter, reduce함수를 쓰면 되지 않나? 했다가 아 그런데 배열이 아니지 해서 포기했는데
(1...n) / Array(1...n) 으로 배열을 만들 수 있다는 것을 알았다.
'코딩테스트' 카테고리의 다른 글
두 정수의 합 (0) | 2023.11.03 |
---|---|
10월 27일 - 최댓값과 최솟값 swift (1) | 2023.10.27 |
10월 26일 - 1439 뒤집기 swift (0) | 2023.10.26 |
10월 25일 - Reverse Linked List swift (0) | 2023.10.25 |
10월 25일 - 백준 10816번 숫자 카드 2 swift (0) | 2023.10.25 |
최근에 올라온 글