
유클리드 호제법을 이용해서 최대공약수로 나눠 기약분수로 표현해주면 된다.
예전에 백준에서 거의 똑같은 문제를 본 기억이 난다.
class Solution {
public int[] solution(int denum1, int num1, int denum2, int num2) {
int[] answer = {};
answer = new int[2];
int a = denum1*num2 + denum2*num1;
int b = num1 * num2;
if (a>=b) {
answer[0] = a/gcd(b, a);
answer[1] = b/gcd(b, a);
} else {
answer[0] = a/gcd(a, b);
answer[1] = b/gcd(a, b);
}
return answer;
}
public int gcd(int a, int b) {
while (a!=0) {
int temp = a;
a = b%a;
b = temp;
}
return b;
}
}'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 순서쌍의개수 (자바, Java) (0) | 2022.11.26 |
|---|---|
| n의 배수 고르기 (자바, Java) (0) | 2022.11.26 |
| 숨어있는숫자의덧셈(1) (자바, Java) (0) | 2022.11.26 |
| 자릿수 더하기 (자바, Java) (0) | 2022.11.26 |
| 최댓값 만들기 (1) (자바, Java) (0) | 2022.11.26 |