분수의 덧셈

문제

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 <numer1, denom1, numer2, denom2 < 1,000

입출력 예

numer1
denom1
numer2
denom2
result

1

2

3

4

[5, 4]

9

2

1

3

[29, 6]

입출력 예 설명

입출력 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

코드

function solution(numer1, denom1, numer2, denom2) {
    const gcd = (a,b) => a % b === 0 ? b: gcd(b, a%b); // 최대공약수
    const lcm = (a,b) => a * b / gcd (a,b); // 최소공배수

    const denom3 = lcm(denom1, denom2);
    const numer3 = numer1*(denom3/denom1) + numer2*(denom3/denom2)
    
    return [numer3/gcd(denom3, numer3), denom3/gcd(denom3, numer3)];
}

Last updated