https://school.programmers.co.kr/learn/courses/30/lessons/120808#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이건 처음 시도한 코드. 일부 오류남
function solution(numer1, denom1, numer2, denom2) {
let numer3 = numer1*denom2+numer2*denom1;
let denom3 = denom1*denom2;
for (let i = 1; i < Math.max(denom3, numer3); i++){
if (denom3 % i === 0 && numer3 % i === 0){
numer3 /= i;
denom3 /= i;
}
}
return [numer3, denom3]
}
그래서 최대값만 남겨놓는걸로 변경.
function solution(numer1, denom1, numer2, denom2) {
let numer3 = numer1*denom2+numer2*denom1;
let denom3 = denom1*denom2;
let max = 1;
for (let i = 1; i <= Math.max(denom3, numer3); i++){
if (denom3 % i === 0 && numer3 % i === 0){
max = i;
}
}
numer3 /= max;
denom3 /= max;
return [numer3, denom3]
}
근데 다른 코드를 쓴 사람 발견
유클리드 호제법을 이용한 재귀함수