알고리즘 PS
[Python] 프로그래머스 Lv.2 - N개의 최소공배수
on_doing
2021. 2. 11. 20:47
728x90
programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
[ 알고리즘 ]
구현
[문제 접근]
처음에 생각한대로 구현했을 때 자꾸 틀려서 이상하다고 생각했었는데,
모든 수를 한꺼번에 최소공배수를 구하는게 아니라, 두개씩 최소공배수를 구해서 최종적으로 나온 최소공배수를 채택하면 되는 일이었다. 3개 이상의 최소공배수를 구하는 방법을 까먹다니.. 살짝 충격 ㅎㅎ
[코드]
import math
from collections import deque
def solution(arr):
que=deque(arr)
while len(que)>1:
a=que.popleft()
b=que.popleft()
#두개의 최소 공배수 구하기
gcd=math.gcd(a,b)
ans=gcd*(a//gcd)*(b//gcd)
que.appendleft(ans)
return que[0]728x90