파이썬 알고리즘 : N개의 최소 공배수

최소공배수의 의미

2024년 1월 25일 알고리즘 문제풀이

문제

난이도

Lv.2

코드

1
2
3
4
5
6
7
8
9
10
11
12
def solution(arr):
    num = max(arr)
    i = 1
    while True:
        answer = num*i
        for x in arr:
            if answer%x:
                i += 1
                break
        else:
            return answer
    

어떤 수들의 최소공배수는 모든 수의 배수라는 의미이다. 따라서 수 들중 가장 큰 수의 배수를 모두 탐색하여 어떤 수로도 나누어 떨어질 때가 최소공배수이다. 가장 큰 수로 하는 이유는, 그나마 횟수를 조금이라도 낮추기 위해서이다.