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

Rae-eun Yang·2022년 10월 24일
0

프로그래머스

목록 보기
44/83

문제 설명


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


제한사항


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

입출력 예


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

입출력 예 설명

입출력 예 #1

1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.


풀이 코드 (JavaScript)

function solution(denum1, num1, denum2, num2) {
    var answer = [];
    
    let lcm = Math.floor(num1 * num2 / gcd(num1, num2));
    denum1 = denum1 * Math.floor(lcm / num1);
    denum2 = denum2 * Math.floor(lcm / num2);
    
    let denum3 = denum1 + denum2;
    let gcdValue = gcd(denum3, lcm);
    answer.push(Math.floor(denum3 / gcdValue));
    answer.push(Math.floor(lcm / gcdValue));
    
    return answer;
}

const gcd = (a, b) => {
    if(b === 0) {
        return a;
    }
    
    return gcd(b, a % b);
}


profile
개발자 지망생의 벨로그

0개의 댓글