본문 바로가기
C++

[프로그래머스] 분수의 덧셈

by 띰쥬 2025. 9. 1.
728x90
반응형
SMALL

#include <string>
#include <vector>

using namespace std;

int gcd(int a, int b)
{
    if(a % b == 0) return b;
    else return gcd(b, a % b);   // b / (a % b) == 0 이 될 때까지.
}

vector<int> solution(int numer1, int denom1, int numer2, int denom2) {
    vector<int> answer;
    
    // gcd() : 최대공약수 : 공약수 중 가장 큰 것
    // lcm() : 최소공배수 : 두 개 이상의 자연수에 공통으로 존재하는 배수 중에서 가장 작은 수
    
    int bunmo = denom1*denom2; // 분자
    int bunza = denom2*numer1 + denom1*numer2;
    
    int gcd_val = gcd(bunmo, bunza);
    
    answer.push_back(bunza/gcd_val);
    answer.push_back(bunmo/gcd_val);
    
    
    return answer;
}

728x90
반응형
LIST

댓글