본문 바로가기

코딩 테스트/Lv.2

[프로그래머스] N개의 최소공배수 with Kotlin

문제

N개의 숫자가 들의 최소공배수를 구하는 문제

 

풀이 과정

숫자 2개씩 순차적으로 최소공배수를 구한다.

최소공배수 : A * B / 최대공약수

 

코드

class Solution {
    fun solution(arr: IntArray): Int {
        var answer = arr[0]
        arr.forEach{ 
            answer = lcm(answer, it)
        }
        return answer
    }
    
    //최소 공배수
    fun lcm(a:Int, b:Int) = a * b / gcd(a, b)
    
    //최대 공약수
    fun gcd(a:Int, b:Int):Int{
        return if (a < b){
            if (a == 0) b else gcd(a, b % a)
        }
        else{
            if (b == 0) a else gcd(b, a % b)
        }
    }
}