function solution(numer1, denom1, numer2, denom2) {
var answer = [];
//분자
x = numer1 * denom2 + numer2 * denom1;
//분모
y = denom1 * denom2;
//분자, 분모 중 작은 수
min_xy = Math.min(x,y);
//분자, 분모의 최대공약수 찾기
for (i = min_xy; i >= 1; i--) {
if (x%i == 0 && y%i == 0) {
answer.push(x/i, y/i);
break;
}
}
return answer;
}
최대공약수 찾기가 어려웠던 문제. 먼저 분자, 분모를 구하고 둘 중 작은 수를 1씩 줄여가면서 for문으로 돌린다. 둘 다 나머지가 0이 나오는 수로 약분하면 되겠다고 생각해서 로직을 짰다. 그런데 검색해보니 유클리드 호제법이라는 알고리즘을 이용하더라.. 수학공부 시간이 아니라 패스하지만 코드 효율은 유클리드 호제법을 사용하는게 훨씬 좋다는 것을 알았다. 공부하자!!