본문 바로가기

verdantjuly/코딩테스트

javascript 최대공약수를 이용해 분수의 합 구하기

728x90

알게 된 것

기약분수 : 분모와 분자를 그들의 최대공약수로 나누면 기약분수

최대공약수로 나누면 나머지가 0

 

시도

let numer = numer1*denom2 + numer2*denom1
let denom = denom1*denom2

이후 구글링 한 답안을 이해하려고 하였음

문제

프로그래머스 코딩테스트 입문 :  분수의 합  (바로가기)

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

풀이

function solution(numer1, denom1, numer2, denom2) {
    let numer = numer1*denom2 + numer2*denom1
    let denom = denom1*denom2
    let maximum = 0 //maximum은 최대공약수
    for(i=1;i<=numer;i++){  
            if (numer%i===0 && denom%i===0){
            maximum =i
            }
        }  
    return [numer/maximum,denom/maximum];
}

소감

Day2의 문제인데 나한테는 많이 어려운 것 같다. 분발해야지.