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

이다혜·2023년 11월 15일
0

프로그래머스

목록 보기
60/61
post-thumbnail

📎 문제 출처


https://school.programmers.co.kr/learn/courses/30/lessons/120808

📌 문제 설명


첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

❓ 풀이 방법



이렇게 더하려는 분수의 분모 x 자기 분자 / 분모의 곱을 계산한 후 분모와 분자의 최대공약수로 나누면 된다.

📌 Code


class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int[2];
        
        int numer = numer1 * denom2 + numer2 * denom1;
        int denom = denom1 * denom2;
        
        int gcd = gcd(numer, denom);
        
        answer[0] = numer / gcd;
        answer[1] = denom / gcd;
        
        return answer;
    }
    public int gcd(int a, int b) {
        if(b == 0) return a;
        return gcd(b, a % b);
    }

}

0개의 댓글