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 라이센스를 따릅니다.