1. arr를 순회하면서 누적적으로 최소공배수를 구하기 위해 for 문을 사용했는데, reduce를 사용해볼 수도 있다. 고차함수의 활용은 종말 간편하다..
func solution(_ arr:[Int]) -> Int {
func gcd(_ a: Int, _ b: Int) -> Int {
if b == 0 { return a }
return gcd(b, a % b)
}
func lcm(_ a: Int, _ b: Int) -> Int {
return a * b / gcd(a, b)
}
var result = arr[0]
for i in arr {
result = lcm(result, i)
}
return result
}
arr.reduce(1) { lcm($0, $1) }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 괄호 회전하기 문제 (0) | 2024.04.13 |
---|---|
[프로그래머스] Lv.2 n^2 배열 자르기 문제 (0) | 2024.04.13 |
[프로그래머스] Lv.2 예상 대진표 문제 (0) | 2024.04.11 |
[프로그래머스] Lv.2 귤 고르기 문제 (0) | 2024.04.11 |
[프로그래머스] Lv.2 행렬의 곱셈 문제 (0) | 2024.04.11 |