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

Seoung Young Oh·2022년 12월 23일
0

프로그래머스

목록 보기
65/105
post-thumbnail

문제설명

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

제한사항

  • 0 <denum1, num1, denum2, num2 < 1,000

입출력 예

denum1num1denum2num2result
1234[5, 4]
9213[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 denum1, int num1, int denum2, int num2) {

		int[] answer = new int[2];

		answer[0] = denum1 * num2 + denum2 * num1;
		answer[1] = num1 * num2;
				
		int min = Math.min(answer[0], answer[1]);

		for (int i = min; i >= 1; i--) {
			if (answer[0] % i == 0 && answer[1] % i == 0) {
				
				answer[0] = answer[0] / i;
				answer[1] = answer[1] / i;
				break;
			}
		}
		return answer;
	}
}

참고

0개의 댓글

관련 채용 정보