😎 링크
프로그래머스 - 분수의 덧셈
😎 고려할 사항
- num1과 num2의 최대공약수가 뭘지 생각하기 전에 일단 냅다 더하자.
- 두 수의 최대공약수 <= 두 수 중 작은 수
- 따라서 최대공약수를 찾는 반복문은 '1부터 두 수 중 작은 수'까지만 돌면 됨
- 두 수 다 최대공약수로 나눴을 때 나머지가 0
😎 소스코드
function solution(denum1, num1, denum2, num2) {
var answer = [];
let mom, son, smaller, gcd;
mom = num1 * num2;
son = denum1 * num2 + denum2 * num1;
if (mom > son) {
smaller = son;
} else {
smaller = mom;
}
for (let i = 1; i <= smaller; i++) {
if (mom % i === 0 && son % i === 0) {
gcd = i;
}
}
answer.push(son / gcd);
answer.push(mom / gcd);
return answer;
}
😎 문법 정리