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
}