알고리즘 풀이/프로그래머스

[Level 2] N개의 최소공배수

mhko411 2021. 3. 4. 09:40
728x90

programmers.co.kr/learn/courses/30/lessons/12953

 

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

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배

programmers.co.kr


접근

입력되는 리스트의 모든 수를 곱한 결과까지 탐색을 하여, 여기서 구한 최댓값에 입력된 리스트의 각 숫자들을 나눴을 때 모두 나누어 떨어진다면 그 수를 반환한다.

 

구현

먼저 입력된 리스트의 수를 모두 곱하여 max_num에 저장하고 2부터 max_num까지 탐색을 한다.

이후 i (2부터 max_num)를 입력된 리스트의 원소들로 나누어서 모두 나머지가 0이 된다면 해당 i를 answer에 저장한다.

def solution(arr):
    answer = 0
    max_num = 1
    for a in arr:
        max_num *= a
    
    for i in range(2, max_num+1):
        for a in arr:
            # 나누어 떨어지지 않는다면 break
            if i%a != 0:
                break
        # 위에서 break에 걸리지 않았다면 
        # 모두 나누어 떨어지는 것이기 때문에 해당 i를 answer에 대입
        else:
            answer = i
            break
    return answer

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level 2] 멀쩡한 사각형  (0) 2021.03.04
[Level 2] 짝지어 제거하기  (0) 2021.03.04
[Level 2] 최댓값과 최솟값  (0) 2021.03.04
[Level 2] 소수 찾기  (0) 2021.03.04
[Level 2] H-Index  (0) 2021.03.03