프로그래머스 코딩테스트 입문을 다 풀면 받는 머쓱이 스탬프를 얻기 위해서
어제부터 day1, day2를 풀어나가고 있다.
그런데 분수의 덧셈에서 최대공약수를 구하는 방법이 너무 생각이 안나서 구글링했더니
대다수의 사람이 유클리드 호제법을 이용해서 문제를 해결하고 있었다.
그래서 이번 글에서는 유클리드 호제법과 코드를 살펴보고자 한다.
// 최대 공약수 함수
function gcd(numer, denom){
if(numer % denom === 0) {
return denom
} else {
var rest = numer % denom;
return gcd(denom, rest)
}
// 다른 사람들은 한 줄로 깔끔하게 코드를 작성했더라..
// return numer % denom === 0 ? denom : gcd(denom, numer % denom)
};
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
var numer = (numer1 * denom2) + (numer2 * denom1)
var denom = denom1 * denom2
var ans = gcd(numer, denom)
answer[0] = numer / ans
answer[1] = denom / ans
return answer;
}