프로그래머스 분수의 덧셈➕(Java)

김덕근·2022년 12월 18일
0

algorithm

목록 보기
6/12

Tip 분자와 분모가 같을 수 있기 때문에 반복문을 이용해 분자의 숫자까지 최대공약수로 나누어 기약분수가 자연수가 되는지 확인한다!

분수에 대해 자세히 알고싶다면
Click -> 분수 어디까지 알고 있을까?

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int up = (denum1 * num2) + (denum2 * num1);
        int down = num1 * num2;

        int [] answer = {up, down};

        for(int x = 1; x <= up; x++) {
            if((up % x == 0) && (down % x == 0)) {
                answer[0] = up / x;
                answer[1] = down / x;
            }
         }

        return answer;
    }
}

분자와 분모를 통분하여 answer의 1차원 배열에 {up, down} 으로 대입해주고,
for문에서 분자의 수까지 반복해 최대공약수를 찾아 나눠주고 배열값에 대입해준다.
(분자와 분모가 같아 자연수가 발생할수 있기 때문이다)

profile
안녕하세요!

0개의 댓글