Level 0. 분수의 덧셈
유클리드 호제법을 이용해 최대공약수와 최소공배수를 구하여 해결했다.
#include <iostream>
#include <vector>
using namespace std;
int gcd(int a, int b)
{
return b ? gcd(b, a % b) : a;
}
int lcm(int a, int b)
{
return a * b / gcd(a, b);
}
vector<int> solution(int numer1, int denom1, int numer2, int denom2)
{
int denom = lcm(denom1, denom2);
int numer = (numer1 * denom / denom1) + (numer2 * denom / denom2);
int GCD = gcd(denom, numer);
return vector<int>({numer / GCD, denom / GCD});
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 구슬을 나누는 경우의 수 (0) | 2023.02.06 |
---|---|
Level 0. 다항식 더하기 (0) | 2023.02.05 |
Level 0. 겹치는 선분의 길이 (0) | 2023.02.03 |
Level 0. 가까운 수 (0) | 2023.02.02 |
Level 0. 합성수 찾기 (0) | 2023.02.01 |