한 걸음씩

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

Programmers

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

winter17 2023. 7. 5. 11:27

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

 

프로그래머스

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

programmers.co.kr

풀이 과정

function solution(numer1, denom1, numer2, denom2) {
// 변수 denom은 분모, numer은 분자, 분모 분자 계산법을 따름
    let denom = (denom1 * denom2)
    let numer = (numer1 * denom2) + (numer2 * denom1)
    const result = [numer, denom]
    while(numer !== 0){ // numer가 0이 될 때까지 반복
        const remainder = denom % numer // denom을 numer로 나눈 나머지
        denom = numer // denom에는 numer값을
        numer = remainder // numer에는 나머지 값을
    }
    // denom값이 최대공약수 -> result 배열의 원소를 찾아 나눈 후 반환
    const filtering = result.map(item => item / denom)
    return filtering
}

유클리드 호제법을 이용하여 최대공약수를 구한 후 반환하였다

[요약] a > b인 경우에, a는 b값을 가지고, b는 a % b값을 가지면서, b가 0이 될 때까지 반복! 


리뷰

유클리드 호제법을 이용하여 구현했는데 이론이 이해가 안 돼서 꽤 시간이 걸렸다.