첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
numer1 | denom1 | numer2 | denom2 | result |
---|---|---|---|---|
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
입출력 예 설명
math
모듈의 gcd
(최대 공약수) 활용하면 되겠네# 최소공배수
lcm = (a * b) // math.gcd(a, b)
1. d = denom1 * denom2
2. d에 맞춰서 분수 통분
3. 분수의 합 계산 n = numer1 + numer2, d = denom1 + denom2
4. 약분 - 분모와 분자의 최대공약수 찾기
def solution(numer1, denom1, numer2, denom2):
# 분모 통분
d = denom1 * denom2
n = numer1*denom2 + numer2*denom1
g = math.gcd(d, n) # 약분
return [n//g, d//g]
fractions
모듈의 Fraction
클래스 활용Fraction
을 사용하면 분모와 분자로 계산이 가능하다.from fractions import Fraction
def solution(n1, d1, n2, d2):
ans = Fraction(n1, d1) + Fraction(n2, d2)
return [ans.numerator, ans.denominator]