33. 약수의 개수와 덧셈

Harold's velog·2024년 2월 14일

CodingTest (Class)

목록 보기
33/52


import Foundation

func solution(_ left:Int, _ right:Int) -> Int {
    
    var n : Int = 0
    var num : Int = 0
    var answer : Int = 0
    
    for i in left ... right {
        n = 1
        num = 0
        while i >= n {
            if i % n == 0 {
                num += 1
            }
            n+=1
        }
        if num % 2 == 0 {
            answer += i
        } else {
            answer -= i
        }
       
    }
       
    return answer
}

for 문과 while문을 통해 약수를 구하고 while이 끝난 다음 if문을 통해 해당 약수의 개수가 짝수 또는 홀수일때를 판별하여 처리하였다.

다른코드

func solution(_ left: Int, _ right: Int) -> Int {
    return (left...right).map { i in (1...i).filter { i % $0 == 0 }.count % 2 == 0 ? i : -i }.reduce(0, +)
}
profile
데일리 정리, 하루에 최소 하나의 글은 적도록 하자.

0개의 댓글