코테 연습 with Kotlin - 4

아이모·2022년 10월 4일
0

코테

목록 보기
4/15

이번 문제는 프로그래머스 LEVEL 2 N개의 최소공배수 문제이다.

기존의 두 수에 대하여 두 수의 최소공배수를 구하는 것을 N개의 수로 확장한 문제이다.

풀이는 간단했다. 두 수의 최소공배수는 두 수의 곱에서 최대 공약수를 나누어 주면 나오기 때문에 n개의 수에 대해서 최소공배수를 구하려면 먼저 가장 작은 두 수의 최소공배수를 구하고 그 최소공배수를 가지고 다음 수와의 최소공배수를 구하면 n개의 수의 최소공배수를 구할 수 있다.

import kotlin.math.*
class Solution {
    fun solution(arr: IntArray): Int {
        var LCM = arr[0]
        for(i : Int in 1..arr.size-1){
            var multiNum = LCM * arr[i]
            var GCD = gcd(LCM, arr[i])
            LCM = multiNum / GCD
        }
        var answer = LCM;
        return answer
        
    }
    fun gcd(a: Int, b: Int): Int {
        var maximum = max(a, b)
        var minimum = min(a, b)

        if (minimum == 0) {
            return max(a, b)
        } else {
            return gcd(minimum, maximum % minimum)
        }
    }
}

자세한 문제한 대한 설명은 밑 링크를 참조하면 된다.
(https://school.programmers.co.kr/learn/courses/30/lessons/12953)

profile
데이터로 보는 실력

0개의 댓글