-
[알고리즘] 최대공약수 구하기 - 파이썬비전공자 공부일기/:: ALGORITHM 2021. 10. 20. 22:31
방식 1. 큰 수에서부터 나눠보며 깎아나가기(?)
def solution(a, b): i = min(a, b) while True: if a % i == 0 and b % i == 0: return i i = i - 1
방식 2. 유클리드
# 유클리드 알고리즘
# 수학자로 유명한 유클리드(Euclid)의 발견에 따르면, 최대공약수에 다음과 같은 성질이 있다.
# a와 b의 최대공약수는 'b'와 'a를 b로 나눈 나머지'의 최대공약수와 같다. 즉, gcd(a, b) = gcd(b, a%b)
# 어떤 수와 0의 최대공약수는 자기 자신이다. 즉, gcd(n, 0) = ndef solution(a, b): if b == 0: return a return solution(b, a%b)
'비전공자 공부일기 > :: ALGORITHM' 카테고리의 다른 글
[Solv:프로그래머스] 그리디 Greedy - 조이스틱 (0) 2021.10.13 [Solv:프로그래머스] SQL JOIN - 보호소에서 중성화한 동물 (0) 2021.10.11 [Solv:프로그래머스] SQL JOIN - 오랜 기간 보호한 동물(1) (0) 2021.10.11 [Solv:프로그래머스] 정렬 - 가장 큰 수 파이썬으로 풀기 (0) 2021.10.11 [Solv:프로그래머스] 정렬 - K번째 수 파이썬으로 풀기 (1) 2021.10.11