[Programmers] [Lv.1] [Swift] 약수의 합

doyeonjeong_·2022년 7월 26일
0

프로그래머스

목록 보기
10/35

문제

약수의 합

문제파악하기

  • n의 약수(나누어 떨어지는 수)들을 다 더해주면 되는 간단한 문제다.

풀이

func solution(_ n:Int) -> Int {
    var answer = 0
    if n == 0 {
        return 0
    }
    for i in 1...n {
        if n % i == 0 {
            answer += i
        } else {
            continue
        }
    }
    return answer
}

🤔 FEEDBACK

  • 근데 이제 0을 곁들인 .. 예외처리 못해서 하나 계속 틀렸었다.
  • 그리고 처음에 배열에 다 때려넣고 reduce(0, +)했는데 시간복잡도 O(n)라 런타임 에러났었다.

다른 풀이

func solution(_ n:Int) -> Int {   
    guard n != 0 else {
        return 0
    }
    return Array(1...n).filter{n % $0 == 0}.reduce(0, +)
}
  • filter도 O(n)으로 알고있는데 런타임 에러가 안나네..?
  • 걸러진 걸 reduce해서 그런가?
profile
블로그 이사중 🚚 byukbyak.tistory.com

0개의 댓글