func solution(_ arr:[Int]) -> Int {
guard arr.count <= 15 else { return 0 }
let result: Int = arr.reduce(1) { result, value -> Int in
return lcm(result, value)
}
print("result = \(result)")
return result
}
func gcd(_ a: Int, _ b: Int) -> Int {
var a: Int = a
var b: Int = b
while b != 0 {
let r: Int = a % b
a = b
b = r
}
return a
}
func lcm(_ a: Int, _ b: Int) -> Int {
return a * b / gcd(a, b)
}
gcd,lcm은 암기해놓자. 또한 for 문 두개로 배열내 두개의 원소끼리 비교를 reduce로 한 것을 볼 수 있다.