728x90
코드 힌트
- 분모와 분자의 계산:
- 두 분수의 합을 구하기 위해 공통 분모를 사용합니다.
- 분모는 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;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 외계행성의 나이 (0) | 2024.07.28 |
---|---|
[프로그래머스] 9로 나눈 나머지 (0) | 2024.07.28 |
[프로그래머스] 배열 만들기 3 (0) | 2024.07.28 |
[프로그래머스] 특별한 이차원 배열 1 (0) | 2024.07.28 |
[프로그래머스] 배열 만들기 2 (0) | 2024.07.26 |