기록하는삶

[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 최대공약수와 최소공배수 본문

프로그래머스/프로그래머스_lv1(Python)

[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 최대공약수와 최소공배수

mingchin 2021. 9. 11. 01:18
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

[문제 설명]

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

[제한 조건]

  • 두 수는 1이상 1000000이하의 자연수입니다.
def solution(n, m):
    gcd = max([y for y in [x for x in range(1,n+1) if not n%x] if not m%y])
    return [gcd, n*m/gcd]

재귀함수와 유클리드 호제법을 이용한 코드도 있었다.

def solution(n, m):
    gcd = lambda a,b : b if not a%b else gcd(b, a%b)
    lcm = lambda a,b : a*b//gcd(a,b)
    return [gcd(n, m), lcm(n, m)]
728x90
반응형