그냥 이 문제를 어떻게 푸는지 몰랐다
단순하게 분수 덧셈 공식으로 풀어보려고 했으나 답이 나오지 않았다.
켐프 대원분께 질문을 하니 최소공배수를 통해 답을 구해야한다고 알려주셨다.
해결한 코드 !
function solution(numer1, denom1, numer2, denom2) {
numer1 *= denom2;
numer2 *= denom1;
let resultNumer = numer1 + numer2;
let resultDenom = denom1 * denom2;
// 최소 공배수를 구하는 식
let getGCD = (num1, num2) => {
let gcd = 1;
for (let i = 2; i <= Math.min(num1, num2); i++) { // i가 2부터 시작하고 num1과 num2 중 최소값까지 반복
if(num1 % i === 0 && num2 % i === 0){ // num1 과 num2가 i로 나눴을 때 0으로 같이 떨어지면
gcd = i;
}
}
return gcd;
}
gcd = getGCD(resultNumer, resultDenom);
resultNumer = resultNumer / gcd;
resultDenom /= gcd;
return [resultNumer, resultDenom];
}
최소공배수를 구하는 코드양식과 코테를 풀 때는 어느 정도 수학적 지식도 필요하고 필요한 코드 공식 정도는 외워야 하는 거 같다.