
def solution(arr): num = max(arr) n = 1 arr.sort() while True: for i in arr[:-1]: if (num*n)%i != 0: n += 1 break else: break return num*n
잘 생각해보면, 최소 공배수도, 주어진 숫자들 중 가장 큰 숫자의 배수이다. 따라서 우선 num
을 배열의 가장 큰 숫자로 지정해주고, n=1
, 그리고 배열을 작은 순서대로 정렬 시켜준다. 다음은 while문
을 사용해서 num*n
, 즉 num
의 배수가 num
보다 작은 배열의 숫자들로 나누어지는지 확인해보는 과정을 거친다. 만약 나누어떨어지지 않는다면, n += 1
을 통해 곱하는 숫자를 1씩 올려주고 다시 while문
을 실행하게끔 한다. 만약 모든 숫자가 나누어떨어지는 num*n
숫자가 나온다면, while문
을 빠져나와주고, num*n
을 되돌려주면 된다.