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

Junyoung Park·2021년 12월 27일
0

코딩테스트

목록 보기
28/631

1. 문제 설명

N개의 최소공배수

2. 문제 분석

최소공배수를 쉽게 구하기 위해서는 먼저 최대공약수를 구할 필요가 있다. 파이썬 math 함수 내의 gcd를 통해 최대공약수를 쉽게 구할 수 있다. 최소공배수는 num1, num2의 곱을 두 수의 최대공약수로 나눈 몫이다. 이를 통해 최소공배수를 구하는 함수를 정의, N개의 수 중 맨 앞의 두 수의 최소공배수를 구하며 마지막 1개가 남을 때까지 반복한다.

최대공약수, 최소공배수를 '어떻게 빨리' 코드로 짜는지는 대략적으로나마 기억하면 문제 풀이 당시 편할 것 같다.

3. 나의 풀이

from math import gcd

def lcm(x, y):
    return (x * y) // gcd(x, y)

def solution(arr):
    
    while len(arr) != 1:
    
        val = lcm(arr[0], arr[1])
        arr.pop(0)
        arr.pop(0)
        arr.insert(0, val)
    
    return arr[0]
profile
JUST DO IT

0개의 댓글