프로그래머스/Lv.0

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

챌인! 2023. 1. 31. 15:09
분수의 덧셈
 

1. 문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
 

2. 제한사항

  • 0 <numer1, denom1, numer2, denom2 < 1,000
입출력 예 numer1 denom1 numer2 denom2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]
 

3. 입출력 예 설명

입출력 예 #1
  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

 

4. 소스코드

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int[2];
        
        int numer = ( numer1 * denom2 ) + ( numer2 * denom1 ); // 분자
        int denom = denom1 * denom2; // 분모 
        
        int min = Math.min( numer, denom );
        
        for( int i=min; i>=2; i-- )
        {
            if( ((numer % i) == 0) && ((denom % i) == 0) )
            {
                numer /= i;
                denom /= i;
            }    
        }        
        
        answer[0] = numer;
        answer[1] = denom;
        
        return answer;
    }
}

 

5. 실행결과

 

6. 문제출처

https://school.programmers.co.kr/learn/courses/30/lessons/120808

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr