문제) 최대공약수와 최소공배수
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
- 내 풀이
- 유클리드 호제법 사용
def solution(n, m):
#유클리드 호제법
#최대공약수
a,b=n,m
GCD=0
LCM=0
while b:
a,b=b,a%b
GCD=a
#최소공배수
LCM= n*m // GCD
answer=[GCD,LCM]
return answer
print(solution(2,10))
- 다른 사람 풀이 1
- 유클리드 호제법 + 람다식
def solution(n,m):
gcd=lambda a,b: b if not a%b else gcd(b,a%b) #b if a%b==0 else gcd(b,a%b)
lcm=lambda a,b: a*b//gcd(a,b)
return [gcd(n,m), lcm(n,m)]
print(solution(2,10))
- 다른 사람 풀이 2
- 유클리드 호제법: 조금 다른 방식
def solution(n, m):
#유클리드 호제법
#꼭 큰 값 x에 안넣어도 결국 바껴서 들어가긴 함
x,y =max(n,m), min(n,m)
r=1
while r>0:
r=x%y
x,y=y,r
answer=[x, int(n*m)//x]
return answer
print(solution(2,10))
최대공약수/최소공배수 개념
[Python] 파이썬- 최대공약수, 최소공배수
최대공약수/ 최소공배수 최대공약수 GCD(Greatest Common Divisor) : 두 수의 공통 약수 중 가장 큰 수 최소공배수 LCM(Largest Common Multiple) : 각각의 배수 중 공통이고, 가장 작은 수 for문 활용한 최대공약..
yygs321.tistory.com
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 제일 작은 수 제거하기 (0) | 2022.02.16 |
|---|---|
| [프로그래머스] [Level 1] 짝수와 홀수 (0) | 2022.02.16 |
| [프로그래머스] [Level 1] 콜라츠 추측 (0) | 2022.02.07 |
| [프로그래머스] [Level 1] 평균 구하기 (0) | 2022.02.07 |
| [프로그래머스] [Level 1] 하샤드 수 (0) | 2022.02.06 |