첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
0 <numer1, denom1, numer2, denom2 < 1,000
입출력 예 #1
입출력 예 #2
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer;
// 1. 두 분수를 더했을 때의 분자와 분모 구하기
int numer3 = numer1 * denom2 + numer2 * denom1;
int denom3 = denom1 * denom2;
// 2. 작은 수 구하기
int min = numer3 < denom3 ? numer3 : denom3;
// 3. 약분하기 (약수를 찾아서 약분)
int i = 2;
while (i <= min) {
if (numer3 % i == 0 && denom3 % i == 0) {
numer3 /= i;
denom3 /= i;
min /= i;
continue;
}
i++;
}
answer = new int[] {numer3, denom3};
return answer;
}
}