티스토리 뷰

728x90
반응형

 

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

 

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

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

programmers.co.kr

 

 


 

 

<나의 풀이>

from math import gcd

# 최소공배수 함수 생성
def solution(arr):
    def lcm(x,y) :
        return (x*y) // gcd(x,y)
    
    while True :
        arr.append(lcm(arr.pop(),arr.pop())) # 뒤에서부터 2개씩 꺼내 함수에 넣어주기
        if len(arr) == 1 :
            return arr[0]

 

유클리드 호제법을 사용하여 푼 코드

최대공약수는 math 모듈을 넣어 사용했다.

 


 

<다른 사람의 풀이>

from functools import reduce
from fractions import gcd

def solution(arr):
    return reduce(lambda a, b : a * b // gcd(a, b), arr)
    
    
# <배운점> 
# => fractions와 functools 모듈을 새로 배움
728x90
반응형
댓글