개발/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()