분수의 덧셈 - Python
2023. 9. 17. 18:36ㆍ공부/📝 프로그래머스
# 유클리드 호제법
# 최대공약수
def GCD(x, y):
while y:
x, y = y, x % y
return x
# 최소공배수
def LCM(x, y):
result = (x * y) // GCD(x, y)
return result
def solution(numer1, denom1, numer2, denom2):
answer = []
temp_numer = numer1 * denom2 + numer2 * denom1
temp_denom = denom1 * denom2
temp_GCD = GCD(temp_numer, temp_denom)
answer = [temp_numer/temp_GCD, temp_denom/temp_GCD]
return answer
# Test Cases
print(solution(1, 2, 3, 4))
print(solution(9, 2, 1, 3))
유클리드 호제법으로 풀었습니다.
아래는 다른 사람들의 풀이를 보고 배울 점을 적었습니다.
from fractions import Fraction
def solution(denum1, num1, denum2, num2):
answer = Fraction(denum1, num1) + Fraction(denum2, num2)
return [answer.numerator, answer.denominator]
그런데 파이썬에서는 이미 함수 구현이 되어있었네요. 신기합니다.
import math
def solution(denum1, num1, denum2, num2):
denum = denum1 * num2 + denum2 * num1
num = num1 * num2
gcd = math.gcd(denum, num)
return [denum//gcd, num//gcd]
심지어 gcd 함수도 이미 있습니다. 번거롭게 선언해서 풀어버렸네요.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
피자 나눠 먹기 (1) - Python (0) | 2023.09.19 |
---|---|
짝수는 싫어요 - Python (0) | 2023.09.19 |
최빈값 구하기 - Python (0) | 2023.09.19 |
나머지 구하기 - Python (0) | 2023.09.19 |
몫 구하기 - Python (0) | 2023.09.16 |