포스트

181. 하샤드 수

나의 코드

1
2
3
4
5
6
7
8
func solution(_ x:Int) -> Bool {
    
    var answer : Bool  = true
    
        answer = x % String(x).compactMap{Int(String($0))}.reduce(0, +) == 0  ? true : false
    
    return answer
}

이렇게 작성한 이유. 이번에는 고차함수와 삼항연산자를 모두 써보려고 노력을 했다.

그러다보니 더 오랜시간이 걸렸고, 정리를 했으나 아직까지 내것으로 만들지 못했다는 생각이 들었다.

확실히 작성을 해두니, 코드가 엄청 깔끔하다는 생각은 든다.

다른코드를 보니 reduce를 이용해서도 만들었는데 nil을 처리하기위해 옵셔널 바인딩인 !를 처리한걸 볼 수 있었다. 나는 nil을 처리할 수 있는 compactMap을 이용했다.

하지만 뒤의 매개변수를 아직 깔끔하게 하지는 못했다. 조금 더 복습과 공부를 하면서 내것으로 만들어야 겠다.


reduce를 쓰려고하니 확실히 막힌다. 많이 부족함을 느낀다.

다른코드

1
String(x).reduce(0, {$0+Int(String($1))!}) == 0

더 공부를 해야겠다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.