What I Learned/Algorithm Practice
[programmers - python] Lv.1: 최대공약수와 최소공배수
Interrobang
2023. 1. 10. 14:48
문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
import math
def solution(a, b):
answer = [math.gcd(a,b), a*b/math.gcd(a,b)]
return answer
*key point: math 모듈의 최대공약수를 구하는 gdc함수를 이용하면 쉽게 구할 수 있다. 최소공배수는 두 수의 곱 나누기 최대공약수이다.
*comment: 모듈을 이용하지 않는다면 최대공약수를 구하는 방법으로 유클리드 호제법이 대표적이다. 이를 이용한 코드는 아래와 같다.
*Jaesun Park, ...님의 풀이
def solution(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
answer = [c, int(a*b/c)]
return answer