프로그래머스: 최소공배수, 최대공약수

BY Jung·2022년 1월 28일
0
  1. 두 수(n, m)를 입력받아 최소공배수와 최대공약수를 구하는 문제이다.
  2. 알고리즘 공부 중에 재귀함수를 접하게 되면서 유클리드 호제법을 이용해 최대공약수를 구하는 법을 알고 있었다.
    • 유클리드 호제법과 이를 이용한 최대공약수 구하기는 여기에서
  3. 최소공배수는 두 수의 곱을 최대공약수로 나눈 수이다.
def gcd(n, m):
    if max(n, m) % min(n, m) == 0:
    	return min(n, m)
    else:
    	return gcd(min(n,m), max(n, m)%min(n, m))

def solution(n, m):
    return [gcd(n, m), n*m/gcd(n, m)]
  • 오늘의 에러
    • 최대공약수(gcd)를 재귀호출하는 줄에서 첫번째 인수로 min(n, m)이 아닌 max(n, m)을 넣어 일부 문제에서 오답이 나왔다. 유클리드 호제법은 두 수가 서로 나누어 떨어지지 않을 때 그 나머지작은 수로 다시 나누기를 반복함을 기억하자
profile
Slow and steady wins the race

0개의 댓글