코딩테스트
N개의 최소 공배수
개발천재나천재
2023. 1. 30. 15:30
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12953
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
"""
문제해결방벙
1. 최소공배수 -> 두수의 곱 // 최대 공약수
2. 최대 공약수 구하는 함수 생성하기
"""
def GCD(big, small):
if big % small == 0:
return small
else:
return GCD(small, big % small)
def LCM(num1, num2, gcd):
return (num1 * num2 // gcd)
def solution(arr):
answer = 0
gcd_val = 0
while len(arr) > 1:
a = arr.pop()
b = arr.pop()
if a > b:
gcd_val = GCD(a, b)
else:
gcd_val = GCD(b, a)
arr.append(LCM(a, b, gcd_val))
answer = arr[0]
return answer