프로그래머스(Java)/Level 0
[프로그래머스] 분수의 덧셈
shs00925
2024. 7. 28. 17:03
코드 힌트
- 분모와 분자의 계산:
- 두 분수의 합을 구하기 위해 공통 분모를 사용합니다.
- 분모는 denom1 * denom2로 계산합니다.
- 분자는 numer1 * denom2 + numer2 * denom1로 계산합니다.
- 기약분수로 만들기:
- 분자와 분모를 최대공약수(GCD)로 나누어 기약분수로 만듭니다.
- GCD는 유클리드 호제법, 제귀함수, for문을 사용하여 계산합니다.
- GCD를 구하는 방법은 여기를 클릭하시면 됩니다.
- 결과 배열:
- 결과 배열 result에 기약분수의 분자와 분모를 저장하여 반환합니다.
정답은 더보기 클릭
더보기
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
// 두 분모의 곱으로 공통 분모를 계산
int denom = denom1 * denom2;
// 두 분자의 합을 계산 (공통 분모를 기준으로)
int numer = denom2 * numer1 + denom1 * numer2;
// 최대공약수를 구해 기약분수로 만들기
int gcdValue = gcd(denom, numer);
// 결과 배열에 기약분수의 분자와 분모를 저장
int[] result = new int[2];
result[0] = numer / gcdValue; // 기약분수의 분자
result[1] = denom / gcdValue; // 기약분수의 분모
return result;
}
// 유클리드 호제법을 사용하여 최대공약수를 구하는 메소드
public static int gcd(int n, int m) {
while (m != 0) {
int tmp = n % m;
n = m;
m = tmp;
}
return n;
}
}