[프로그래머스] Lv. 0 분수의 덧셈

당근 먹는 쿼카·2022년 12월 1일
0

프로그래머스

목록 보기
21/74
post-thumbnail

🔒 분수의 덧셈

문제 설명

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

제한 사항

  • 0 < denum1, num1, denum2, num2 < 1,000

입출력 예

denum1num1denum2num2result
1234[5, 4]
9213[29, 6]

🔑 나의 풀이

function solution(denum1, num1, denum2, num2){
  let answer = []
  
  let bottom = num1 * num2
  let top = (num1 * denum2) + (num2 * denum1)
  
  // 분모와 분자의 최대 공약수를 찾는다
  let gcd = (a, b) => (a % b === 0 ? b : gcd(b, a % b))
  let min = gcd(top, bottom)
  
  answer = [top / min, bottom / min]
  return answer
}

참고 사이트

프로그래머스 코딩 테스트 정답 깃헙

0개의 댓글