Deprecated

[programmers] 프로그래머스 최대공약수와 최소공배수(Python)

HelloMinchan 2020. 6. 15. 17:12

(주)그렙

[programmers] 프로그래머스 최대공약수와 최소공배수

(Python)

(글쓴날 : 2020.06.15)

 


* programmers, 프로그래머스 문제 Python 언어 풀이입니다.

* 소스 코드의 저작권은 글쓴이에게 있습니다.


 

 

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


1) 문제

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12940

 

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

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

programmers.co.kr


2) 풀이 과정

* 시간 복잡도 : O(1)

 

두 수를 입력받아 최대공약수와 최소공배수를 반환하는 문제입니다.

 

저의 경우, Python을 사용했습니다.

유클리드 호제법을 이용한 최대공약수를 구하는 GCD() 함수를 구현한 뒤, 최대공약수와 최소공배수를 구해 문제를 해결했습니다.

최소공배수는 두 수의 곱 나누기 최대공약수로 구했습니다.


3) 코드

 

* Python 코드

1
2
3
4
5
6
7
8
9
def GCD(a, b):
    return b if not a % b else GCD(b, a % b)
 
 
def solution(n, m):
    gcd = GCD(n, m)
    lcm = n * m // gcd
    
    return [gcd, lcm]