[프로그래머스] 최대공약수와 최소공배수 (Kotlin)

728x90

문제


이해

두수 n, m
최대 공약수 / 최소공배수 반환 : Array


접근

  1. 최대 공약수 함수 작성
    • 유클리드 호제법
    • 나눴을때 나머지가 0이 될때까지 재귀 함수 돌리기
  2. 최소 공배수 함수 작성
    • 두수의 곱 / 최대공약수
  3. return

풀이

class Solution {
    fun solution(n: Int, m: Int): IntArray {
        return intArrayOf(gcm(n, m), lcm(n, m))
    }

    fun gcm(a: Int, b: Int): Int {
        var maximum = max(a, b)
        var minimum = min(a, b)

        if (minimum == 0) {
            return maximum
        } else {
            return gcm(minimum, maximum % minimum)
        }
    }

    fun lcm(a: Int, b: Int): Int =
        (a * b) / gcm(a, b)
}
728x90

댓글

Designed by JB FACTORY