본문 바로가기
Programmers/Lv.0

[프로그래머스][Js] Lv.0 - 분수의 덧셈

by pin9___9 2023. 3. 15.
728x90

문제💭


 

나의 풀이👨‍💻

function solution(denum1, num1, denum2, num2) {
    let result = [0,0]
    let x = denum1*num2 + denum2*num1;
    let y = num1*num2
    let lcm = 1;
    for(let i = 0; i <= x;i++){
      if((x % i == 0) && (y % i == 0)){
          lcm = i;
      };
    };
    result[0] = x / lcm;
    result[1] = y / lcm;
    return result
}

 


다른 사람의 풀이👨‍🏫

1. 

const solution = (denum1, num1, denum2, num2) => {
    let [ denum, num ] = [denum1 * num2 + denum2 * num1, num2 * num1]

    while(true) {
        let isContinue = false

        const min = denum < num ? denum : num

        for (let i=2; i<=min; i++) {
            if (denum % i === 0 && num % i === 0) {
                denum = denum / i
                num = num / i
                isContinue = true
                break
            }
        }

        if (!isContinue) {
            break
        }
    }

    return [ denum, num ]
}

2. 

var g=(a,b)=>b?g(b,a%b):Math.abs(a),l=(a,b)=>(a*b)/g(a,b),p,q,solution=(a,b,c,d)=>{return p=l(b,d),q=a*p/b+c*p/d,[q/g(p,q),p/g(p,q)]}

 


Reference

  • 프로그래머스
 

프로그래머스

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

programmers.co.kr

 

728x90

댓글