분수의 덧셈
1. 문제 설명
- 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
2. 제한 사항
- 0 < numer1, denom1, numer2, denom2 < 1000
3. 입출력 예
input |
result |
[1, 2, 3, 4] |
[5, 4] |
[9, 2, 1, 3] |
[29, 6] |
4. 입출력 예 설명
- 입출력 예 #1
- 1 / 2 + 3 / 4 = 5/ 4 입니다, 따라서
[5,4]
를 return 합니다.
- 입출력 예 #2
- 9 / 2 + 1 / 3 = 29/ 6 입니다, 따라서
[29,6]
를 return 합니다.
5. 문제 풀이(Java)
class Solution{
// 최대 공약수 구하는 함수
int getGCD(int num1, int num2){
int result = 1;
for(int i = Math.max(num1, num2); i > 1; i --){
if (num1 % i == 0 && num2 % i == 0){
result = i;
break;
}
}
return result;
}
// 실질적으로 문제 푸는 함수 구문
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = {};
// 분모 와 분자를 최대치로 구하는 공식
int resultDenom = denom1 * denom2;
int resultNum = denom2 * numer1 + denom1 * numer2;
// 최대 공약수 구하기(분모와 분자를 넣고)
int i = getLcm(resultDenom, resultNum) ;
// 각각 최대 공약수 나누기
resultDenom /= i;
resultNum /= i;
// 배열 형식으로 전달하기위해 배열 새로 선언
answer = new int[] {resultNum , resultDenom};
return answer;
}
}