Lv2. N개의 최소공배수

Hello·2022년 8월 6일
0

코딩테스트 연습 > N개의 최소공배수

1. 풀이 설명

  1. lcm 을 1로 초기화 한다.

  2. arr 를 for 문 돌면서, lcm 과 현재 숫자의 lcm 을 구하여 업데이트 한다.

  3. lcm 을 반환한다.

arr: 2 6 8 14
				lcm
2				2
2 * 3			2 * 3
2 * 2 * 2		2 * 2 * 2 * 3
2 * 7			2 * 2 * 2 * 3 * 7

2. 나의 풀이

python

def solution(arr):
    size = len(arr)
    lcm = 1
    for n in arr:
        lcm = lcm * n  / gcd(lcm, n)
    return lcm

def gcd(a, b):
    if a % b == 0:
        return b
    return gcd(b, a % b)

kotlin

fun solution(arr: IntArray): Int =
    arr.fold(1) { lcm, n ->
        lcm * n / gcd(lcm, n)
    }
     
fun gcd(a: Int, b: Int): Int {
    if (a % b == 0) return b
    return gcd(b, a % b)
}

3. 배운점

  1. 최대공약소, 최소공배수: 참고문제
profile
안녕하세요 :)

0개의 댓글