코린이의 소소한 공부노트

[프로그래머스/Lv.0] 분수의 덧셈 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 분수의 덧셈

무지맘 2022. 10. 18. 15:17

1. Input

1) 첫 번째 분수의 분자 denum1, 분모 num1

2) 두 번째 분수의 분자 denum2, 분모 num2

 

2. Output

1) 두 분수의 합을 기약분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열

 

3. Constraint

1) 0 < denum1, num1, denum2, num2 < 1000

2) 분자, 분모는 모두 정수

 

4. Example

Input: denum1=1, num1=2, denum2=3, num2=4 -> Output: {5, 4}

설명:

- 1/2 + 3/4 = 2/4 + 3/4 = 5/4

 

5. Code

1) 첫 코드(2022/10/18)

int[] answer = new int[2];
// 두 분모의 곱으로 통분하여 분자, 분모 계산
answer[0] = denum1*num2 + denum2*num1;
answer[1] = num1*num2;
// 분자, 분모 중 작은 것을 선택 후 최대공약수를 찾아 나눔
int small = answer[0]>answer[1] ? answer[1] : answer[0];
for(int i=small ; i>1 ; i--)
    if(answer[0]%i==0 && answer[1]%i==0){ // i: 최대공약수
        answer[0] /= i;
        answer[1] /= i;
        break;
    }
return answer;