https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
최대 공약수와 최소 공배수를 구하는 문제입니다.
GCD를 이용해서 최대 공약수는 쉽고 빠르게 구할 수 있습니다.
최대 공약수를 구했다면, 최소 공배수는 N * M을 최대 공약수로 나눈 값입니다.
예를 들어 N과 M이 24, 36이라면
GCD(24, 36)
GCD(36, 24)
GCD(24, 12)
GCD(12, 0) -> 최대 공약수가 12
N * M = 864이고 864를 12로 나누면 최소 공배수인 72가 됩니다.
def solution(n, m):
md = gcd(n, m)
answer = [md, n * m / md]
return answer
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
728x90
'🔍 알고리즘 > 프로그래머스 Python' 카테고리의 다른 글
[Python] 프로그래머스 12926. 시저 암호 (Lv.1) (0) | 2022.10.10 |
---|---|
[Python] 프로그래머스 12930. 이상한 문자 만들기 (Lv.1) (0) | 2022.10.10 |
[Python] 프로그래머스 12969. 직사각형 별찍기 (Lv.1) (0) | 2022.10.07 |
[Python] 프로그래머스 82612. 부족한 금액 계산하기 (Lv.1) (0) | 2022.10.07 |
[Python] 프로그래머스 12950. 행렬의 덧셈 (Lv.1) (0) | 2022.10.07 |