분수의 덧셈

김세호·2022년 12월 8일
0

문제

내 풀이

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int[] answer = {};
        answer = new int[2];
        int son = 0; //분자
        int mother = 0 ; //분모
        mother =num1*num2;
        son = denum1*num2 + denum2*num1;
        answer[0] = son;
        answer[1] = mother;
        if(mother == son){ // 분자 분모 같을 때
            answer[0]=1;
            answer[1]=1;
        }else if(mother > son){ //분모 더 클 때
            for (int i = 1 ; i <=son ; i++){ // 분자의 약수들 중 분모와 나눠지는 것들을 모두 나눠준다
               if((son%i==0) && (mother%i==0)){
                   answer[0]=son/i;
                   answer[1]=mother/i;
               } 
            }    
        }else if(mother < son){ //분자 더 클 때
            for (int i = 1 ; i <=mother ; i++){// 분모의 약수들 중 분자와 나눠지는 것들을 모두 나눠준다
               if( (son%i==0) && (mother%i==0)){
                   answer[0]=son/i;
                   answer[1]=mother/i;
               } 
            }
        }
        return answer;
    }
}
  • 분수의 덧셈 방식을 통해 덧셈하여 분자(son)와 분모(mother)를 만들어준다.
  • 분자와 분모가 같을 때 는 모두 약분 되어 1/1이 되므로 answer = [1,1] 출력
  • 분자가 분모보다 더 작을 때, 분자의 약수들중 분모와 나눠지는 것들을 모두 나눠준다
  • 분모가 분자보다 더 작을 때, 분모의 약수들중 분자와 나눠지는 것들을 모두 나눠준다

0개의 댓글