문제
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
생각한 풀이
1. 분모가 다르면 분모끼리 곱해주고 분자에 반대 분모 값을 곱해주고 더한다
2. 중요한건 약분 처리를 어떻게 해야하나
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int answer[] = new int[2];
int s = numer1 * denom2 + numer2 * denom1;
int m = denom1 * denom2;
int gcd= gcd(s,m);
s/=gcd;
m/=gcd;
answer[0]=s;
answer[1]=m;
return answer;
}
private int gcd(int a,int b){
while(b!=0){
int k= a%b;
a=b;
b=k;
}
return Math.abs(a);
}
}
Today's quote
花無十日紅(화무십일홍)