Kotlin/코딩테스트

[프로그래머스] 분수의 덧셈 - kotlin

깨노비 2023. 3. 11. 23:18
728x90
반응형

class Solution {
    fun solution(numer1: Int, denom1: Int, numer2: Int, denom2: Int): IntArray {
        val gcdValue = gcd(denom1, denom2)
        val numer = (numer1 * denom2 / gcdValue) + (numer2 * denom1 / gcdValue)
        val lcmValue = denom1 * denom2 / gcdValue
        
        val gcdValue2 = gcd(numer, lcmValue)
        val answer: IntArray = intArrayOf( numer / gcdValue2, lcmValue / gcdValue2 )

        return answer
    }

    // 최대공약수
    fun gcd(a: Int, b: Int): Int {
        var i: Int = a
        var j: Int = b
        while (j != 0) {
            val mod = i % j
            i = j
            j = mod
        }

        return i
    }
}
728x90
반응형