https://school.programmers.co.kr/learn/courses/30/lessons/120808
🔊 문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을
기약 분수
로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
기약분수
란 더 이상 약분되지 않는 분수를 의미한다.최대공약수
로 나누어 주어야 한다. ➡️ 최대공약수를 구하는 로직이 필요하다.👩💻 나의 풀이
function solution(numer1, denom1, numer2, denom2) {
const denom = (denom2 * numer1) + (denom1 * numer2);
const numer = denom1 * denom2;
const getGCD = (a, b) => (b === 0 ? a : getGCD(b, a % b));
const gcd = getGCD(denom, numer);
return [denom / gcd, numer / gcd];
}