코딩테스트_분수의덧셈

호기심많은아저씨 ㅣ 2023. 4. 17. 00:57

 

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int[2];;
        
        int a = numer1;
        int b = denom1;
        int c = numer2;
        int d = denom2;         
        
        int x = a*d + b*c ;
        int y = b*d;
        
        int maximum = 1;
        
        for(int i = 1 ; i <= x ; i ++) 
        {
            if(x%i==0 && y%i==0) 
            {
                maximum = i ;
            }
        }
        answer[0] = x/maximum;
        answer[1] = y/maximum;
        
        
        return answer;
    }
    

}


최대공약수와 최소공배수를 이용해서 주어지는 숫자의 두 수값을 통분하는게 관건.

유클리드 호제법을 사용하여 통분했당! 코딩테스트라 하는데 수학문제인 거 같은 기분...