[프로그래머스] 230214 분수의 덧셈

뒹귤·2023년 2월 14일
0

코딩 테스트

목록 보기
1/25
post-thumbnail

☀️ 문제 설명

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


☀️ 제한사항

• 0 <numer1denom1numer2denom2 < 1,000


☀️ 입출력 예

numer1denom1numer2denom2result
1234[5, 4]
9213[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 denom = denom1 * denom2;
  const numer = numer1 * denom2 + numer2 * denom1;

  const getGCD = (a, b) => {
    if (b === 0) return a;
    return getGCD(b, a % b);
  };

  const gcd = getGCD(numer, denom);

  return [numer / gcd, denom / gcd];
}

👉 두 수의 최대공약수를 구하는 방법은 아래 블로그를 참고했다!

JavaScript - 최대공약수 구하기 (유클리드 호제법)

profile
🌱 FE 

0개의 댓글