def solution(number1, denom1, number2, denom2):
answer = []
if (denom1 % denom2 == 0):
x = denom1 // denom2
denom2, number2 = denom2 * x, number2 * x
answer.append(number1 + number2)
answer.append(denom1)
elif (denom2 % denom1 == 0):
x = denom2 // denom1
denom1, number1 = denom1 * x, number1 * x
answer.append(number1 + number2)
answer.append(denom2)
else:
x = denom1 * denom2
number1 *= denom2
number2 *= denom1
n3 = number1 = number2
if x % n3 == 0 or n3 % x == 0:
answer.append(number1 + number2)
answer.append(x)
return answer
<aside> 💡
처음에 기약분수로 약분하는 메서드를 이용하지 않고, 풀어보려다가.. 코드를 작성했는데, 너무 바보 같이 적고 있었다.. 그냥 분모 분자를 통일하고 나누면 될 것을..
</aside>
import math
def solution(number1, denom1, number2, denom2):
answer = []
d3 = denom1 * denom2
n3 = number1 * denom2 + number2 * denom1
gcd = math.gcd(n3, d3) # 최대 공약수로 약분하는 메서드 이용
ad3 = d3 // gcd
an3 = n3 // gcd
answer.append(an3)
answer.append(ad3)
return answer
<aside> 💡
최대 공약수로 약분하는 메서드인 gcd를 이용하면 됐었다!
그러나 아직 기초만 해서 그런지,, 입문을 너무 쉽게 봤다.
아직 Day 2 인데 벌써 import를 사용해야하는 문제가 나올줄..
다른 사람의 풀이를 보니 gcd, fraction을 사용하는 분들이 많았다.
이것이 무엇인지 공부해보자.
</aside>
최대 공약수의 개념과 유클리드 호제법
math.gcd 사용
fractions.Fraction 사용