https://school.programmers.co.kr/learn/courses/30/lessons/120808
분자와 분모를 따로 계산해준다. 일단 분모를 서로 곱해서 최소공배수를 만들고 분자들도 같이 곱해준뒤 더해준다. 그 후 공약수를 구해서 나눠준다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int numer1, int denom1, int numer2, int denom2) {
vector<int> answer;
numer1 *= denom2;
numer2 *= denom1;
int a = denom1 * denom2;
int b = numer1 + numer2;
int i = 2;
while(i<1000)
{
if(a % i == 0 && b % i == 0)
{
a /= i;
b /= i;
}
else
i++;
}
answer.push_back(b);
answer.push_back(a);
return answer;
}
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int denum1, int num1, int denum2, int num2) {
vector<int> answer;
int denum = (denum1 * num2) + (denum2 * num1);
int num = num1 * num2;
for(int i = min(denum, num); i >= 2 ; i--)
{
if(denum % i == 0 && num % i == 0)
{
denum /= i;
num /= i;
break;
}
}
answer.push_back(denum);
answer.push_back(num);
return answer;
}
분자와 분모까진 똑같으나 분자와 분모의 최대공약수를 찾아서 한번만 나눠준다.