본문 바로가기

PS/프로그래머스

[프로그래머스 LV 2] N개의 최소공배수 파이썬/python

728x90

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

 

코딩테스트 연습 - N개의 최소공배수

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배

programmers.co.kr

 

a,b 의 최소공배수 = a,b 의 곱 / a,b의 최대공약수

 

두개의 수까지만 가능하기때문에 두개마다 비교해주면서 각각 최소공배수를 구해준다.

유클리드 호제법으로 최대공약수를 구할 수 있는데

 

이정도는 알아둘만 한 것 같다. gcd함수에 유클리드 호제법을 통한 최대공약수 구하는 코드를 썼음

 

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def gcd(a, b):
    while a % b != 0:
        a, b = b, a % b
    return b
 
def solution(arr):
    answer = 0
    while len(arr) > 1:
        a = arr.pop(0)
        b = arr.pop(0)
        lcm = gcd(a, b)
        arr.insert(0, (a*b)/lcm)
    answer = int(arr[0])
 
    return answer
 
 
cs

 

728x90