기록하는삶
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 최대공약수와 최소공배수 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12940
[문제 설명]
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, 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
반응형
'프로그래머스 > 프로그래머스_lv1(Python)' 카테고리의 다른 글
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 나누어 떨어지는 숫자 배열 (0) | 2021.09.11 |
---|---|
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 2016년 (0) | 2021.09.11 |
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 핸드폰 번호 가리기 (0) | 2021.09.11 |
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 문자열 다루기 기본 (0) | 2021.09.11 |
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 이상한 문자 만들기 (0) | 2021.09.11 |