프로그래머스_최소공배수,최대공약수

hankyulee·2021년 11월 13일
0

Swift coding test 준비

목록 보기
36/57
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로 한 것을 볼 수 있다.

0개의 댓글