문제
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1
두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2 가 매개변수로 주어집니다.
두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로
담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 <numer1, denom1, numer2, denom2 < 1,000
설명
문제 풀이
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int num1 = numer1*denom2+denom1*numer2;
int num2 = denom1*denom2;
//최대공약수
int gcd = getGCD(num1, num2);
int numer3 = num1/gcd;
int denom3 = num2/gcd;
int[] answer = {numer3, denom3};
return answer;
}
private static int getGCD(int num1, int num2){
if(num1%num2==0){
return num2;
}else{
return getGCD(num2, num1%num2);
}
}
}
- 분수의 합을 구해 분자는 num1 변수에, 분모는 num2 변수에 담아 준다.
- num1과 num2의 최대공약수를 구해 각각 나눈 값을 numer3, demon3에 담아준다.
- 최대공약수 구하는 함수 getGCD 생성(Solution클래스 바깥에 생성해야 함)
- 배열에 numer3과 demon3을 담아 return