programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
최종 코드
hwayeon351/Programmers-Algorithms
프로그래머스 코딩테스트 풀이. Contribute to hwayeon351/Programmers-Algorithms development by creating an account on GitHub.
github.com
from math import gcd
def get_lcm(a, b):
return a * b // gcd(a, b)
def solution(arr):
lcm = arr[0]
for i in arr[1:]:
lcm = get_lcm(lcm, i)
return lcm
풀이 과정
풀이 시간 7분
1. 두 수의 최소공배수 구하기
from math import gcd
def get_lcm(a, b):
return a * b // gcd(a, b)
두 수 a와 b가 있다면, a와 b의 공통된 배수 가운데 최솟값이 최소공배수이다.
따라서 최소공배수는 두 수의 곱을 두 수의 최대공약수로 나눈 것과 같다.
만약, a = 6, b = 18일 때, 최소공배수 = 6 * 18 / 6 = 18이다.
그래서 최소공배수를 구하기 위해서는 두 수의 최대공약수를 구해야한다.
최대공약수는 a의 약수이면서 b의 약수인 수 중 최댓값을 말한다.
파이썬은 math 모듈에서 최대공약수를 구하는 함수를 제공한다.
2. N개의 최소공배수 구하기
그렇다면 N개의 최소공배수는 어떻게 구할까?
N개의 최소공배수는 먼저 두 수의 최소공배수를 구하고, 그 값과 다른 수의 최소공배수를 구해나가면 된다.
def solution(arr):
lcm = arr[0]
for i in arr[1:]:
lcm = get_lcm(lcm, i)
return lcm
참고
math
math 모듈은 C 표준에서 정의된 수학 함수에 대한 액세스를 제공한다. import math math 모듈 전체 import from math import function math 모듈의 function import 함수 math.gcd(a, b) a와 b의 최대공약수 반..
hwayomingdlog.tistory.com
'코테 노트 > 프로그래머스' 카테고리의 다른 글
Level 2 소수만들기 Python 3 (0) | 2021.01.21 |
---|---|
Level 2 올바른 괄호 Python (0) | 2021.01.15 |
Level 2 짝지어 제거하기 (0) | 2021.01.14 |
Level 2 JadenCase 문자열 만들기 Python3 (0) | 2021.01.08 |
Level 2 행렬의 곱셈 Python3 (0) | 2021.01.08 |