반응형
문제
풀이
생각해볼 부분 : 분수의 통분 -> 최대공약수 -> 약분
- 분수의 통분은 denum3, num3 변수를 이용하여 분자와 분모의 값을 담아주었다.
- 최대공약수는 GCD라는 메서드를 따로 구현하여 denum3, num3의 값을 넣어주었다.
- 약분도 마찬가지로 GCD라는 메서드에서 구한 최대공약수를 이용하여 진행하였다.
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 denum3 = (denum1 * num2) + (denum2 * num1);
int num3 = num1 * num2;
int[] answer = {denum3, num3};
int max = GCD(answer[0], answer[1]);
answer[0] /= max;
answer[1] /= max;
return answer;
}
}
보완할 점
- 최대공약수 (유클리드 호제법) 에 대해 다시 생각해볼 필요 ㅇ
- denum3, num3 연산이나 다른 방식 생각해볼 필요 ㅇ
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] 최빈값 구하기 (0) | 2023.01.18 |
---|---|
[LV00] 중앙값 구하기 (0) | 2023.01.09 |
[ 프로그래머스 ] LV.0 분수의 덧셈 (0) | 2023.01.09 |
[ 프로그래머스 ] LV.0 숫자 비교하기 (0) | 2023.01.08 |
[ 프로그래머스 ] LV.0 두 수 의 나눗셈 (0) | 2023.01.08 |