코딩테스트 문제/프로그래머스

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

유호야 2022. 12. 13. 00:34
반응형

그냥 풀었더니 실패......

저 배열의 길이를 효율적으로 만들었어야 해서 수정했더니 통과했따

레벨 0인데 머리 왜 복잡하지.........

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        int[] answer = new int[2];
        
        int denum = num1*num2; // 분모 8
        int num = denum1*num2 + denum2*num1; // 분자 10
        
        int[] denums = listOfCodomain(denum);
        int[] nums = listOfCodomain(num);
        
        int tmp = 1;
        
        for(int i = 1; i < denums.length; i++) {
        	for(int j = 1; j < nums.length; j++) {
        		if(denums[i] != 0 && denums[i] != 0 && denums[i] == nums[j]){
                    tmp = denums[i];
                }
        	}
        }

        answer[1] = denum/tmp;
        answer[0] = num/tmp;

        return answer;
    }
    
    
    static int[] listOfCodomain(int domain) {
		int leng = 0;
		for (int i = 1; i <= domain; i++) {
			if (domain % i == 0) {
				leng++;
			}
		}

		int[] arrCo = new int[leng];
		int a = 0;
		for (int i = 1; i <= domain; i++) {
			if (domain % i == 0) {
				arrCo[a++] = i;
			}
		}

		return arrCo;
	}
}
반응형