분수의 덧셈
문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 <denum1, num1, denum2, num2 < 1,000
입출력 예
denum1 num1 denum2 num2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]
입출력 예 설명
입출력 예 #1
1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
입출력 예 #2
9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
public int[] solution(int denum1, int num1, int denum2, int num2) {
int answer[] = new int[2];
int numerator = (denum1*num2) + (denum2*num1);
int denominator = num1*num2;
// int factor1 = numerator;
// int factor2 = denominator;
// int remainder = factor1%factor2;
// int maxCommonFactor = 0;
//
// while(remainder != 0) {
// factor1 = factor2;
// factor2 = remainder;
// remainder = factor1%factor2;
// }
// maxCommonFactor = factor2;
int maxCommonFactor = maxCommonFactor(numerator, denominator);
answer[0] = numerator/maxCommonFactor;
answer[1] = denominator/maxCommonFactor;
return answer;
}
public int maxCommonFactor(int num1, int num2) {
if(num2 == 0) {
return num1;
} else {
return maxCommonFactor(num2, num1%num2);
}
}
'코딩 문제' 카테고리의 다른 글
코딩 문제 - 중앙값 구하기 (0) | 2022.11.21 |
---|---|
코딩 문제 - 배열 두 배 만들기 (0) | 2022.11.10 |
코딩 문제 - 두 수의 나눗셈 (0) | 2022.11.10 |
코딩 문제 - 몫 구하기 (0) | 2022.11.09 |
코딩 문제 - 두 수의 곱 (0) | 2022.11.09 |