본문 바로가기
코딩 문제/프로그래머스 [ JavaScript ]

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

by CODESIGN 2022. 10. 25.

https://school.programmers.co.kr/learn/courses/30/lessons/120808

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명


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

 

 

제한사항


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

 

 

입출력 예


denum1 num1 denum2 num2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

 

 

입출력 예 설명


입출력 예 #1

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

입출력 예 #2

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

 

 

나의 풀이


function solution(denum1, num1, denum2, num2) {
    var answer = [];   
    let denum = (denum1*num2)+(denum2*num1);
    let num = num1*num2;
    let gcd = (a,b) => (a%b === 0 ? b:gcd(b, a%b));
    answer[0] = denum /gcd(denum,num);
    answer[1] = num / gcd(denum,num);
    return answer;
}

 

 

댓글