프로그래머스 분수의 덧셈

수민·2022년 10월 24일
0

알고리즘

목록 보기
5/22

문제 설명

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

  1. 1. 분모 통분해주기
    2.분자분모의 최대공약수로 나뉨
    2-1. 분자분모중 작은수 찾기
    2-2 작은수를 분자분모로 나누기
    2-2-1 둘다 나누어 떨어지면 그 나눈수가 최대공약수
    2-2-2 안나누어 떨어지면 작은수를 1줄이고 2-2로 돌아가기.
function solution(denum1, num1, denum2, num2) {
 var answer=[];
 
 const denum=denum1*num2+denum2*num1;    //분자
 const num=num1*num2;					//분모(통분)
 
 let minNumber;
 if(denum<num){			//분자 분모중 작은수 찾기.
     minNumber=denum;			//분자가 작으면 minNumber에 넘겨줌
 }else{
     minNumber=num;		//분모가  작으면 minNumber에 넘겨줌
 }
 //나누어 떨어지는것 -> 나머지가 0인것 
 while(true){					
 if(denum%minNumber===0 ){					//둘다 나누어 떨어지면 최대공약수
     if(num%minNumber===0){
         //나누어 떨어지는것 둘다 0이면
         //minNumber는 최대공약수
         return [denum/minNumber,num/minNumber];    //
         
         
         }
     
     }
     minNumber=minNumber-1;
     
 }
}
// minNumber 에는 작은수가 들어가 있음.










```
profile
헬창목표

0개의 댓글