분수의 덧셈

난이도 중하
화낼거양's avatar
Mar 21, 2025
분수의 덧셈
Contents
정답
 
 

문제 설명

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

제한사항

  • 0 <numer1denom1numer2denom2 < 1,000

입출력 예

numer1
denom1
numer2
denom2
result
1
2
3
4
[5, 4]
9
2
1
3
[29, 6]

입출력 예 설명

입출력 예 #1
  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
입출력 예 #2
  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
 
 
기본적으로 주어진 코드 :
class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = {}; return answer; } }
 
 

정답

 
class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = new int[2]; int boonMo = denom1 * denom2; int boonZa = (numer1 * denom2) + (numer2 * denom1); // 최대 공약수를 구해야 함 int i = 2; int measure = -1; int target = boonMo > boonZa ? boonZa : boonMo; while (i <= target) { if (boonMo % i == 0 && boonZa % i == 0) { measure = i; } i++; } if (measure == -1) { answer[0] = boonZa; answer[1] = boonMo; } else { answer[0] = boonZa / measure; answer[1] = boonMo / measure; } return answer; } }
 
  • 최대 공약수를 찾아 활용하는 것이 핵심
Share article

moohyun