첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
denum1 | num1 | denum2 | num2 | result |
---|---|---|---|---|
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
function solution(denum1, num1, denum2, num2) {
var answer = [];
let lcm = Math.floor(num1 * num2 / gcd(num1, num2));
denum1 = denum1 * Math.floor(lcm / num1);
denum2 = denum2 * Math.floor(lcm / num2);
let denum3 = denum1 + denum2;
let gcdValue = gcd(denum3, lcm);
answer.push(Math.floor(denum3 / gcdValue));
answer.push(Math.floor(lcm / gcdValue));
return answer;
}
const gcd = (a, b) => {
if(b === 0) {
return a;
}
return gcd(b, a % b);
}