Written by
최태열
on
on
[Python][프로그래머스][Level2] N개의 최소공배수
[Python][프로그래머스][Level2] N개의 최소공배수
코드
def solution(arr):
answer=1
for num in arr:
cnt=1
while True:
for x in range(2,max(answer,num)):
if answer%x==0 and num%x==0:
answer//=x
num//=x
cnt*=x
break
else:
break
answer*=num*cnt
return answer
최소공배수는 최대공약수*(각 숫자들을 공약수로 나눈 몫) 이다.
따라서 arr에 들어있는 수를 차례로 반복문으로 돌면서
최소공배수로 만드는 answer 와 겹치는 수가 있는지 확인한다.
겹치는 수가 있을 경우 해당 수는 answer에 곱할 필요가 없기 때문에
건너뛰고 answer에 없는 수만 곱해준다.
Discussion and feedback