본문 바로가기

코딩테스트/Python

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

내 코드

def solution(arr):
    i=1
    while True:
        answer = [a for a in arr if i%a==0]
        if len(answer)==len(arr):
            return i
        i+=1

arr에 있는 숫자가 다 나누어 떨어지는 수를 구했다.

 

다른사람 코드

import math

def solution(num):      
    answer = num[0]
    for n in num:
        answer = (n * answer) // math.gcd(n, answer)
    return answer

최대공약수는 두 수의 곱에 최소공배수를 나누면된다. 최소공배수를 구하는 함수는 gcd이다!!!

이것을 배열에 들어있는 원소만큼 반복하면된다!