나의 풀이
#include <string>
#include <vector>
#include <numeric>
using namespace std;
vector<int> solution(int numer1, int denom1, int numer2, int denom2) {
vector<int> answer;
int numer , denom;
int gcd_num;
numer = numer1 * denom2 + numer2 * denom1;
denom = denom1 * denom2;
gcd_num = gcd(numer, denom);
while(gcd_num != 1) {
numer /= gcd_num;
denom /= gcd_num;
gcd_num = gcd(numer, denom);
}
answer.push_back(numer);
answer.push_back(denom);
return answer;
}
분수의 합을 구하고 그것을 기약분수로 만들기 위해 최대공약수가 필요하다고 판단.
C++ STL에서 이 친구를 사용해보았다.
- 헤더
#include <numeric>
- 함수
gcd() : 최대공약수 // Greatest Common Divisor
lcm() : 최소공배수 // Least Common Multiple
'Practice & Study > 프로그래머스' 카테고리의 다른 글
프로그래머스>코딩테스트 입문>최빈값 구하기 (C++) | sort, max_element (0) | 2023.06.04 |
---|---|
프로그래머스>코딩테스트 입문>짝수 홀수 개수 (C++) (0) | 2023.06.03 |
프로그래머스>코딩테스트 입문배열 두 배 만들기 (C++) | auto& (0) | 2023.06.03 |
프로그래머스>코딩테스트 입문>숫자 비교하기 (C++) (0) | 2023.06.03 |
프로그래머스>코딩테스트 입문>두 수의 나눗셈 (C++) (0) | 2023.06.03 |