프로그래머스 연습문제 - N개의 최소공배수 (level2)

j_wisdom_h·2022년 11월 25일
0

CodingTest

목록 보기
18/58
post-thumbnail

프로그래머스 연습문제 - N개의 최소공배수 (level2)

문제설명


제한사항 & 입출력 예


찾아본 솔루션

from fractions import gcd

def nlcm(num):      
    answer = num[0]
    for n in num:
        answer = n * answer / gcd(n, answer)

    return answer

gcd() : 두 수의 최대공약수를 구해주는 함수
최소공배수(lcm) = (x*y) / gcd(x,y)

이틀 연속 혼자 풀기 실패....
gcd()라는 함수가 있는지 처음 알았다. 메모메모..


from functools import reduce
from fractions import gcd

def nlcm(num):
    return reduce(lambda a, b : a * b // gcd(a, b), num)

reduce 함수를 쓰면 한 줄로도 가능하다.


gcd() 함수의 로직구현하기

def gcd(a,b):
    while b != 0:
        tmp = a % b
        a , b = b , tmp
    return a
profile
뚜잇뚜잇 FE개발자

0개의 댓글