728x90
SMALL

using System;

public class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int[] answer = new int[2];
        int min =0;
        for(int i = 1;i<=denum1 * num2 + denum2 * num1;i++)
        {
            if((denum1 * num2 + denum2 * num1)%i == 0 && num1*num2%i ==0)
            {
                min = i;
            }

///(denum1 * num2 + denum2 * num1)으로 i가 나뉘어 지면 약분이 되니까 그 경우에는 answer[0](분자)을 min으로 약분할 수 있어서 min의 조건에 추가가 되어 있다.
        }
        answer[0] = (denum1 * num2 + denum2 * num1)/min;
        answer[1] = num1 * num2 / min;         
        
        return answer;
    }
}

 

// 공약수를 조건문에서 찾는 과정에서 시간이 걸렸다.

 

 

자바

 

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int mother = num1 * num2;
        int son1 = num1 * denum2;
        int son2 = num2 * denum1;
        int totalSon = son1 + son2;
        
        for(int i = mother; i >= 1; i--)
        {
            if(totalSon % i == 0 && mother % i == 0)
            {
                totalSon /= i;
                mother /= i;
            }
        }
        
        int[] answer = {totalSon, mother};
        return answer;
    }
}

 

 

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int[] answer = new int[2];

        answer[0] = denum1*num2+denum2*num1;
        answer[1] = num1*num2;
        int min = Math.min(answer[0],answer[1]);
        int max = 1;
        
        for(int i=1; i<=min; i++)
        {
            if(answer[0]%i==0 && answer[1]%i==0)
            {
                max= i;
            }
        }
        
        answer[0] /= max;
        answer[1] /= max;
        return answer;
    }
}
728x90

설정

트랙백

댓글