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

마틴·2024년 3월 11일

2024-1 알고리즘

목록 보기
2/6

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

function my_gcd(n1, n2) {
    var a, b, n;
    
    if (n1 === n2) return n1;
    else if (n1 > n2) {
        a = n1;        b = n2;
    } else {
        a = n2;        b = n1;         
    }
    while(b) {
        n = a % b;        
        a = b;
        b = n;
    }
    return a;    
}

function solution(numer1, denom1, numer2, denom2) {
    var answer = [];
    var gcd;
    answer[0] = (numer1 * denom2) + (numer2 * denom1);
    answer[1] = denom1 * denom2;

    gcd = my_gcd(answer[0], answer[1]);
    answer[0] = parseInt(answer[0]/gcd);
    answer[1] = parseInt(answer[1]/gcd);
    
    return answer;
}

/* 
임의의 두 자연수 a, b가 주어졌을때. 둘중 큰 값이 a라고 가정해보겠습니다.
a를 b로 나눈 나머지를 n 이라고 하면 (a%b = n)n이 0일때, b가 최대 공약수(GCD)입니다.
만약 n이 0이 아니라면, a에 b값을 다시 넣고 n를 b에 대입 한 후 다시 위에 step2부터 반복하면 됩니다.
출처: https://blockdmask.tistory.com/53 [개발자 지망생:티스토리]
*/
profile
목원대 컴퓨터공학과

0개의 댓글