Swift | programmers/Lv1.

[Swift]LV.1 하샤드 수

iOSDEv 2024. 2. 23. 11:25
하샤드 수

 

 

문제

 

 

 

문제 풀이

 

func solution(_ x:Int) -> Bool {
    
    let str = String(x)
                                      
    let value = str.reduce(0) { $0 + Int(String($1))! }
    
    return x % value == 0 ? true : false
}

 

 

다른 사람 풀이

 

func solution(_ x:Int) -> Bool {
    return x % String(x).reduce(0, {$0+Int(String($1))!}) == 0
}

 

한 줄로 고차함수를 이용해 각 자리수를 더한후 나머지가 0일 때만 true 반환 메소드를 만들었다 

 

func solution(_ x:Int) -> Bool {
    var sum = String(x)
        .map{Int(String($0))!}
        .reduce(0, +)  //reduce(0, $0 + $1)을 왼쪽처럼 축약 가능

    return x % sum == 0
}

 

 

나 포함하여 고차함수를 거의 다 사용하여 풀이한것을 볼 수 있었다

 

 

func solution(_ x:Int) -> Bool {
    var sum: Int = 0
    var val = x

    while val > 0 {
        sum += val % 10
        val /= 10
    }

    return x % sum == 0
}