알고리즘 테스트

프로그래머스 Lv - 0 분수의 덧셈

Ella Seon 2022. 10. 31. 14:26

1. 문제 설명

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

 


2. 문제 풀이

function solution(denum1,num1,denum2,num2){
  const 분자 = (denum1*num2) + (denum2 * num1);
  const 분모 = num1 *num2

  //작은수 찾아보기
  let 작은수;
  if(분자<분모){
    작은수 = 분자;
  }else{
    작은수 = 분모;
  }

  //작은 수 찾고 나머지가 0 이면 최대 공약수
  //나머지가 0 이 아니면 작은수를 -1 해서 반복
  
  while(true){
    if(분자%작은수===0 && 분모%작은수===0){
      return [분자/작은수,분모/작은수]
    }
    작은수-=1
  }
}