개발/algorithm

[프로그래머스][level2] N개의 최소공배수 - python

zzi_on2 2022. 4. 11. 22:00

문제 링크

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

풀이

- 백준 최소 공배수, 최대 공약수 문제를 풀어봤으면 쉽게 풀 수 있는 문제 

https://zzion2.tistory.com/132

 

[백준 2609번] 최대공약수와 최소공배수 - python

문제 링크 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.a

zzion2.tistory.com

- 큐에 비교해야할 숫자들 다 넣어두고, 

큐에 숫자 하나만 남을 때까지 두 수 빼서 최소 공배수 구하고 다시 큐에 삽입하는 과정을 반복 

from collections import deque 

# 최대공약수 구하기
def gcd(x,y):
    while y:
        x, y = y, x%y
    return x 
    
# 최소공배수 구하기 
def lcm(x,y):
    return (x*y) // gcd(x,y)
    
def solution(arr):
    
    q = deque(arr)
    
    # 큐에 하나 남을 때까지 반복 
    while len(q) > 1 :
    	# 두 개씩 빼서 두 수의 최소 공배수 구하고 다시 넣어주기 
        x = q.popleft()
        y = q.popleft()
        
        q.append(lcm(x,y))
        
    return q.pop()