21. 하샤드 수

Harold's velog·2024년 2월 2일

CodingTest (Class)

목록 보기
21/52

나의 코드

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를 쓰려고하니 확실히 막힌다.
많이 부족함을 느낀다.

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

더 공부를 해야겠다.

profile
데일리 정리, 하루에 최소 하나의 글은 적도록 하자.

0개의 댓글