94-1. 분수의 덧셈

박은서's avatar
Mar 09, 2026
94-1. 분수의 덧셈
2026.03.09(MON)_94일차

1. 문제

문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 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 합니다.

2. 풀이

class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = {numer1 * denom2 + numer2 * denom1, denom1 * denom2}; for (int i = answer[1]; i > 1; i--) { if (answer[0] % i == 0 && answer[1] % i == 0) { for (int j = 0; j < answer.length; j++) { answer[j] /= i; } break; } } return answer; } }

3. 다른 사람의 풀이

class Solution { public int GCD(int num1, int num2) { if (num1 % num2 == 0) return num2; return GCD(num2, num1 % num2); } public int[] solution(int denum1, int num1, int denum2, int num2) { int[] answer; denum1 *= num2; denum2 *= num1; answer = new int[]{denum1 + denum2, num1 * num2}; int greatest_common_divisor = GCD(answer[0], answer[1]); answer[0] /= greatest_common_divisor; answer[1] /= greatest_common_divisor; return answer; } }
 
Share article