에디의 우당탕탕 코딩공장

✨lv0_코딩테스트연습_분수의 덧셈

by 인턴 에디

코딩테스트 연습 - 분수의 덧셈 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

✔️ 유형: 수학

✔️ 문제풀이:

      분자와 분모의 최대공약수를 구해, 각각 나누어준다.

하나씩 나눠보며 최대공약수를 구할 수 있지만, 유클리드 호제법을 통해 쉽게 해결할 수 있다.

여기서 r 이 0이 될 떄의 y값이 최대공약수이다.

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int numer1, int denom1, int numer2, int denom2) {
    vector<int> answer;

    int numer = numer1*denom2 +numer2*denom1;
    int denom = denom1*denom2;
    
    //두 정수의 최대 공약수 구하기.
    int x = numer;
    int y = denom;
    int r = 1;
    while(x%y != 0)
    {
        r = x%y;
        x = y;
        y = r;
    }
    
    answer.push_back(numer/y);
    answer.push_back(denom/y);
    
    

    return answer;
}

블로그의 정보

에디의 우당탕탕 코딩 공장

인턴 에디

활동하기