본문 바로가기

알고리즘 공부/프로그래머스 > Python3

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

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

 

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

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

programmers.co.kr

 

[정답]

 

1. 최대공약수를 구하기 위해 n,m중에서 작은 값을 min_num으로 정한다.

2. 1~min_num+1동안 반복문을 돌면서, n,m을 나눌 수 있는 i를 찾는다.

3. 반복문을 돌 동안 i는 계속 갱신되고, 이것이 GCD(최대공약수)가 된다.

4. LCM(최소공배수)는 n*m/GCD이다.

5. GCD와 LCM을 리스트 answer에 넣어주고 return한다.