728x90
반응형
힌트
더보기
-((분자1*분모2) + (분자2*분모1))
(분모1*분모2)
- 계산한 분자와 분모의 값을 2부터 분자의 값까지 순서대로/역순으로 차례로 나누었을 때 나온 최대값으로 분자와 분모를 나누면 최대한 약분된 값이 나온다
정답
더보기
var numer = (numer1 * denom2) + (numer2 * denom1);
var denom = denom1 * denom2;
int maxNum = 1;
for (int i = numer; i > 1; i--)
{
if (numer % i == 0 && denom % i == 0)
{
maxNum = i;
break;
}
}
return new int[]{numer / maxNum, denom / maxNum};
해석
더보기
var numer = (numer1 * denom2) + (numer2 * denom1);
분자의 합
var denom = denom1 * denom2;
분모의 값이다
for (int i = numer; i > 1; i--)
numer(분자의 값) 값부터 2까지 차례로 감소하며 반복한다
if (numer % i == 0 && denom % i == 0)
{
maxNum = i;
break;
}
i가 분자와 분모를 나누었을 때 나머지가 0이면
i가 약분 할 수 있는 가장 큰 수임으로 반복문을 종료한다.
maxNum = i;
분자와 분모를 약분할 수 있는 값 i를 maxNum에 저장
return new int[]{numer / maxNum, denom / maxNum};
분자와 분모를 나눈 값을 배열화 하여 리턴한다
728x90
반응형
'C#' 카테고리의 다른 글
[프로그래머스 힌트/답/해석] 최댓값 만들기 1 (1) | 2024.01.29 |
---|---|
[프로그래머스 힌트/답/해석] 점의 위치 구하기 (0) | 2024.01.29 |
[프로그래머스 힌트/답/해석] 피자 나누기2 (1) | 2024.01.29 |
[프로그래머스 힌트/답/해석/해석] 최빈값 찾기 (1) | 2024.01.29 |
[프로그래머스 힌트/답/해석] 배열의 중앙값 구하기 (1) | 2024.01.29 |